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.