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