Trabalhando com Maven e os plugins ‘jboss-as-maven-plugin’ e ‘maven-antrun-plugin’

Spread the love

E agora vai um post rápido e rasteiro ensinando como aproveitar uma das funcionalidades mais bacanas providas pelo Maven quando trabalhamos com o JBoss AS 7 ou JBoss EAP é o deploy automático dos artefatos diretamente no contêiner. Isso acaba por facilitar bastante o processo de test in code. Para isso precisamos apenas adicionar o plugin ‘jboss-as-maven-plugin’ conforme descrito no trecho abaixo.

<build>
  <finalname>${project.artifactId}</finalname>
  <!-- Na linha acima passamos uma variável com o nome final do artefato -->

  <!-- Dentro da tag build definimos quais plugins usaremos -->
   <plugins>

    <!-- Aqui definimos os plugins que usaremos dentre eles o de deploy-->

    <plugin>
      <groupid>org.jboss.as.plugins</groupid>
      <artifactid>jboss-as-maven-plugin</artifactid>
        <configuration>
           <filename>${project.artifactId}.ear</filename>
           <skip>false</skip>
        </configuration>
      <executions>
        <execution>
          <phase>install</phase>
          <goals>
            <goal>deploy</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
   </plugins>
</build>

A parte ruim da brincadeira é que ele não funciona direito em versões anteriores do JBoss, mas pra isso temos uma solução um pouco menos elegante mas que reolve o problema.
Para isso usaremos um outro plugin o ‘maven-antrun-plugin’ ele é capaz de executar uma série de tarefas como copiar e deletar arquivos. Para facilitar as coisas pode ser interessante criar uma variável de ambiente que aponte para o diretório de instalação do seu JBoss o que facilita o desenvolvimento em equipe e dispensa a necessidade de colocar o path completo.

<build>
  <plugins>

    <!-- Aqui definimos os plugins que usaremos dentre eles o de deploy-->

    <plugin>
      <artifactid>maven-antrun-plugin</artifactid>
      <executions>
        <execution>
          <id>deploy-DU</id>
          <phase>install</phase>
          <goals>
            <goal>run</goal>
          </goals>
          <configuration>
            <tasks>
              <!-- Aqui copiamos o artefato gerado no diretório target para o diretório de deploy do JBoss -->
              <copy overwrite="true" file="target/myproject-${project.version}.ear" todir="${env.JBOSS_HOME}/server/default/deploy">
            </copy></tasks>
          </configuration>
        </execution>
        <execution>
          <id>undeploy-DU</id>
          <phase>clean</phase>
          <goals>
            <goal>run</goal>
          </goals>
          <configuration>
            <tasks>
              <!-- Aqui dizemos ao Maven para deletar a versão anterior do nosso artefato no diretório de deploy do JBoss-->
              <delete file="${env.JBOSS_HOME}/server/default/deploy/myproject-${project.version}.ear">
            </delete></tasks>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

Sem muito segredo simples e rápido bons estudos a todos.

Treinamentos relacionados com este post














Leandro

Leandro da Costa é especialista em inteligência artificial on-premise e desenvolvedor de software desde 2010, com mais de 15 anos de experiência em projetos nacionais e internacionais para empresas como Thomson Reuters, Unilever, PagSeguro e Hub Fintech, além de órgãos como CNPq, Ministério da Saúde e Ministério da Justiça. Trabalho com Java, Python, Kotlin, JavaScript, microsserviços, cloud (AWS, Azure, GCP) e Docker/Kubernetes — sempre em times ágeis, muitas vezes distribuídos globalmente. Já enfrentei desafios reais de escalabilidade e performance, como a modernização do sistema de análise de crédito do PagSeguro, onde reduzi o tempo de resposta de mais de 1 minuto para menos de 15 segundos. Sou Instrutor Parceiro na Udemy desde 2021 — reconhecimento concedido aos 200 melhores instrutores do mundo — com mais de 65.000 alunos em 136 países. Minha missão é compartilhar conhecimento validado na prática, ajudando desenvolvedores a acelerar suas carreiras e conquistar melhores oportunidades. Fora do teclado, gosto bastante de viajar além de esportes de aventura: rapel, tirolesa e trilhas. Apreciador de cervejas, fã de Rock'n Roll, ficção científica e geopolítica. Atualmente atuo como consultor na Erudio Training.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *