Maven - automação de implantação
No desenvolvimento do projeto, normalmente um processo de implantação consiste nas seguintes etapas -
Faça check-in do código de todos os projetos em andamento no SVN (sistema de controle de versão) ou repositório de código-fonte e marque-o.
Baixe o código-fonte completo do SVN.
Crie o aplicativo.
Armazene a saída da construção no arquivo WAR ou EAR em um local de rede comum.
Obtenha o arquivo da rede e implante-o no site de produção.
Atualizada a documentação com data e número da versão atualizada do aplicativo.
Declaração do Problema
Normalmente, há várias pessoas envolvidas no processo de implantação mencionado acima. Uma equipe pode lidar com o check-in do código, outra pode lidar com a construção e assim por diante. É muito provável que qualquer etapa seja perdida devido aos esforços manuais envolvidos e devido ao ambiente de várias equipes. Por exemplo, o build mais antigo não pode ser substituído na máquina da rede e a equipe de implantação implantou o build mais antigo novamente.
Solução
Automatize o processo de implantação combinando o seguinte -
- Maven, para construir e lançar projetos.
- SubVersion, repositório de código-fonte, para gerenciar o código-fonte.
- Gerenciador de repositório remoto (Jfrog / Nexus) para gerenciar binários de projeto.
Atualizar projeto POM.xml
Estaremos usando o plug-in Maven Release para criar um processo de liberação automatizado.
Por exemplo: projeto 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>
No Pom.xml, a seguir estão os elementos importantes que usamos -
Sr. Não. | Elemento e descrição |
---|---|
1 | SCM Configura o local do SVN de onde o Maven fará o check-out do código-fonte. |
2 | Repositories Local onde WAR / EAR / JAR construído ou qualquer outro artefato será armazenado após a construção do código ser bem-sucedida. |
3 | Plugin O plugin maven-release é configurado para automatizar o processo de implantação. |
Plug-in de lançamento Maven
O Maven realiza as seguintes tarefas úteis usando maven-release-plugin.
mvn release:clean
Ele limpa o espaço de trabalho caso o último processo de liberação não tenha sido bem-sucedido.
mvn release:rollback
Reverta as alterações feitas no código e na configuração do espaço de trabalho, caso o último processo de liberação não tenha sido bem-sucedido.
mvn release:prepare
Executa várias operações, como -
Verifica se há alguma alteração local não confirmada ou não.
Garante que não haja dependências SNAPSHOT.
Altera a versão do aplicativo e remove SNAPSHOT da versão para fazer a liberação.
Atualize os arquivos pom para o SVN.
Execute casos de teste.
Confirme os arquivos POM modificados.
Marque o código no subversion
Aumente o número da versão e anexe SNAPSHOT para liberação futura.
Envie os arquivos POM modificados para o SVN.
mvn release:perform
Verifica o código usando a tag definida anteriormente e executa o objetivo de implantação do Maven, para implantar o war ou construir o artefato no repositório.
Vamos abrir o console de comando, vá para o C:\ > MVN >bus-core-api diretório e execute o seguinte mvn comando.
>mvn release:prepare
Maven começará a construir o projeto. Assim que a compilação for bem-sucedida, execute o seguintemvn comando.
>mvn release:perform
Depois que a construção for bem-sucedida, você pode verificar o arquivo JAR carregado em seu repositório.