English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
项目开发过程中,部署的过程包含需如下步骤:
将所的项目代码提交到 SVN 或者代码库中并打上标签。
从 SVN 上下载完整的源代码。
构建应用。
存储构建输出的 WAR 或者 EAR 文件到一个常用的网络位置下。
从网络上获取文件并且部署文件到生产站点上。
更新文档并且更新应用的版本号。
通常情况下上面的提到开发过程中会涉及到多个团队。一个团队可能负责提交代码,另一个团队负责构建等等。很有可能由于涉及的人为操作和多团队环境的原因,任何一个步骤都可能出错。比如,较旧的版本没有在网络机器上更新,然后部署团队又重新部署了较早的构建版本。
通过结合以下方案来实现自动化部署:
使用 Maven 构建和发布项目
使用 SubVersion, 源码仓库来管理源代码
使用远程仓库管理软件(Jfrog或者Nexus) 来管理项目二进制文件。
我们将会使用 Maven 发布的插件来创建一个自动化发布过程。
例如,bus-core-api 项目的 pom.xml 文件代码如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>bus-core-api</groupId> <artifactId>bus-core-api</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <scm> <url>http://www.svn.com</url> <connection>scm:svn:http://localhost:8080/svn/jrepo/trunk/ Framework</connection> <developerConnection>scm:svn:${username}/${password}@localhost:8080: common_core_api:1101:code</developerConnection> </scm> <distributionManagement> <repository> <id>Core-API-Java-Release</id> <name>Release repository</name> <url>http://localhost:8081/nexus/content/repositories/ Core-Api-Release</url> </repository> </distributionManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>2.0-beta-9</version> <configuration> <useReleaseProfile>false</useReleaseProfile> <goals>deploy</goals> <scmCommentPrefix>[bus-core-api-release-checkin]-< /scmCommentPrefix> </configuration> </plugin> </plugins> </build> </project>
En el archivo pom.xml, algunos elementos importantes que utilizamos comúnmente se muestran en la tabla a continuación:
Nodo de elemento | Descripción |
---|---|
SCM | Configurar la ruta de SVN, Maven extraerá el código desde esta ruta. |
repository | Ubicación del archivo WAR o EAR o JAR construido, o cualquier otro componente generado después de la construcción del código fuente exitoso. |
Plugin | Configura maven-release-El plugin de plugin realiza el proceso de despliegue automatizado. |
Maven utiliza maven-release-El plugin de plugin realiza las siguientes tareas.
mvn release:clean
Limpia el espacio de trabajo para asegurar que el proceso de publicación más reciente se realice con éxito.
mvn release:rollback
Si el proceso de publicación anterior no fue exitoso, deshace los cambios en el espacio de trabajo y la configuración para asegurar que el proceso de publicación se realice con éxito.
mvn release:prepare
Ejecuta varias operaciones:
Verifica si hay modificaciones no enviadas localmente
Asegúrate de que no haya dependencias de snapshot
Cambia la información de la versión de la aplicación para la publicación
Actualiza el archivo POM al SVN
Ejecuta los casos de prueba
Sube el archivo POM modificado
Hace un marcador en el código en SVN
Añade el número de versión y el snapshot para futuras publicaciones
Sube el archivo POM modificado al SVN
mvn release:perform
Cambia el código al lugar donde antes lo marcaste, ejecuta el objetivo de despliegue de Maven para desplegar el archivo WAR o construir la estructura correspondiente en el repositorio.
Abre el terminal de comandos, entra a C:\ > MVN > bus-core-En el directorio api, luego ejecutar el siguiente comando mvn.
C:\MVN\bus-core-api>mvn release:prepare
Maven comienza a construir todo el proyecto. Después de que la construcción sea exitosa, puedes ejecutar el siguiente comando mvn.
C:\MVN\bus-core-api>mvn release:perform
Después de que la construcción sea exitosa, puedes verificar si el archivo JAR subido a tu repositorio funciona.