{"id":635,"date":"2014-01-19T00:24:56","date_gmt":"2014-01-19T03:24:56","guid":{"rendered":"https:\/\/www.semeru.com.br\/blog\/?p=635"},"modified":"2022-12-20T23:39:52","modified_gmt":"2022-12-21T02:39:52","slug":"trabalhando-com-maven-e-os-plugins-jboss-as-maven-plugin-e-maven-antrun-plugin","status":"publish","type":"post","link":"https:\/\/www.semeru.com.br\/blog\/trabalhando-com-maven-e-os-plugins-jboss-as-maven-plugin-e-maven-antrun-plugin\/","title":{"rendered":"Trabalhando com Maven e os plugins &#8216;jboss-as-maven-plugin&#8217; e &#8216;maven-antrun-plugin&#8217;"},"content":{"rendered":"<p>E agora vai um post r\u00e1pido e rasteiro ensinando como aproveitar uma das funcionalidades mais bacanas providas pelo <strong>Maven <\/strong>quando trabalhamos com o<strong> JBoss AS 7<\/strong> ou <strong>JBoss EAP<\/strong> \u00e9 o deploy autom\u00e1tico dos artefatos diretamente no cont\u00eainer. Isso acaba por facilitar bastante o processo de test in code. Para isso precisamos apenas adicionar o plugin <strong>&#8216;jboss-as-maven-plugin&#8217;<\/strong> conforme descrito no trecho abaixo.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;build&gt;\n  &lt;finalname&gt;${project.artifactId}&lt;\/finalname&gt;\n  &lt;!-- Na linha acima passamos uma vari\u00e1vel com o nome final do artefato --&gt;\n\n  &lt;!-- Dentro da tag build definimos quais plugins usaremos --&gt;\n   &lt;plugins&gt;\n\n    &lt;!-- Aqui definimos os plugins que usaremos dentre eles o de deploy--&gt;\n\n    &lt;plugin&gt;\n      &lt;groupid&gt;org.jboss.as.plugins&lt;\/groupid&gt;\n      &lt;artifactid&gt;jboss-as-maven-plugin&lt;\/artifactid&gt;\n        &lt;configuration&gt;\n           &lt;filename&gt;${project.artifactId}.ear&lt;\/filename&gt;\n           &lt;skip&gt;false&lt;\/skip&gt;\n        &lt;\/configuration&gt;\n      &lt;executions&gt;\n        &lt;execution&gt;\n          &lt;phase&gt;install&lt;\/phase&gt;\n          &lt;goals&gt;\n            &lt;goal&gt;deploy&lt;\/goal&gt;\n          &lt;\/goals&gt;\n        &lt;\/execution&gt;\n      &lt;\/executions&gt;\n    &lt;\/plugin&gt;\n   &lt;\/plugins&gt;\n&lt;\/build&gt;\n<\/pre>\n<p>A parte ruim da brincadeira \u00e9 que ele n\u00e3o funciona direito em vers\u00f5es anteriores do <strong>JBoss<\/strong>, mas pra isso temos uma solu\u00e7\u00e3o um pouco menos elegante mas que reolve o problema.<br \/>\nPara isso usaremos um outro plugin o <strong>&#8216;maven-antrun-plugin&#8217;<\/strong> ele \u00e9 capaz de executar uma s\u00e9rie de tarefas como copiar e deletar arquivos. Para facilitar as coisas pode ser interessante criar uma vari\u00e1vel de ambiente que aponte para o diret\u00f3rio de instala\u00e7\u00e3o do seu JBoss o que facilita o desenvolvimento em equipe e dispensa a necessidade de colocar o path completo.<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;build&gt;\n  &lt;plugins&gt;\n\n    &lt;!-- Aqui definimos os plugins que usaremos dentre eles o de deploy--&gt;\n\n    &lt;plugin&gt;\n      &lt;artifactid&gt;maven-antrun-plugin&lt;\/artifactid&gt;\n      &lt;executions&gt;\n        &lt;execution&gt;\n          &lt;id&gt;deploy-DU&lt;\/id&gt;\n          &lt;phase&gt;install&lt;\/phase&gt;\n          &lt;goals&gt;\n            &lt;goal&gt;run&lt;\/goal&gt;\n          &lt;\/goals&gt;\n          &lt;configuration&gt;\n            &lt;tasks&gt;\n              &lt;!-- Aqui copiamos o artefato gerado no diret\u00f3rio target para o diret\u00f3rio de deploy do JBoss --&gt;\n              &lt;copy overwrite=&quot;true&quot; file=&quot;target\/myproject-${project.version}.ear&quot; todir=&quot;${env.JBOSS_HOME}\/server\/default\/deploy&quot;&gt;\n            &lt;\/copy&gt;&lt;\/tasks&gt;\n          &lt;\/configuration&gt;\n        &lt;\/execution&gt;\n        &lt;execution&gt;\n          &lt;id&gt;undeploy-DU&lt;\/id&gt;\n          &lt;phase&gt;clean&lt;\/phase&gt;\n          &lt;goals&gt;\n            &lt;goal&gt;run&lt;\/goal&gt;\n          &lt;\/goals&gt;\n          &lt;configuration&gt;\n            &lt;tasks&gt;\n              &lt;!-- Aqui dizemos ao Maven para deletar a vers\u00e3o anterior do nosso artefato no diret\u00f3rio de deploy do JBoss--&gt;\n              &lt;delete file=&quot;${env.JBOSS_HOME}\/server\/default\/deploy\/myproject-${project.version}.ear&quot;&gt;\n            &lt;\/delete&gt;&lt;\/tasks&gt;\n          &lt;\/configuration&gt;\n        &lt;\/execution&gt;\n      &lt;\/executions&gt;\n    &lt;\/plugin&gt;\n  &lt;\/plugins&gt;\n&lt;\/build&gt;\n<\/pre>\n<p>Sem muito segredo simples e r\u00e1pido bons estudos a todos.<\/p>\n<h2>Treinamentos relacionados com este post<\/h2>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_rest_spring_java\" target=\"_blank\" rel=\"noopener\"><\/p>\n<p><img decoding=\"async\" style=\"max-width: 100%;\" title=\"REST API's RESTFul do 0 \u00e0  AWS com Spring Boot 3, Java e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/07-rest-spring-java.png\"><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_microservices_java\" target=\"_blank\" rel=\"noopener\"><br \/>\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Microservices do 0 com Spring Cloud, Spring Boot e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/14-microservices-java.png\"><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_rest_spring_kotlin\" target=\"_blank\" rel=\"noopener\"><br \/>\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"REST API's RESTFul do 0 \u00e0 AWS com Spring Boot 3, Kotlin e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/18-rest-spring-kotlin.png\"><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_ms_kotlin\" target=\"_blank\" rel=\"noopener\"><br \/>\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Microsservi\u00e7os do 0 com Spring Cloud, Kotlin e Docker\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/22-ms-kotlin.png\"><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_docker\" target=\"_blank\" rel=\"noopener\"><br \/>\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Docker do 0 \u00e0 Maestria: Cont\u00eaineres Desmistificados mais 3 B\u00d4NUS\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/09-docker.png\"><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_docker_para_aws\" target=\"_blank\" rel=\"noopener\"><br \/>\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Docker para Amazon AWS Implante Apps Java e .NET com Travis CI\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/10-docker-to-aws.png\"><br \/>\n<\/a><\/p>\n<p><a href=\"https:\/\/pub.erudio.com.br\/kr\/blog_kotlin\" target=\"_blank\" rel=\"noopener\"><br \/>\n        <img decoding=\"async\" style=\"max-width: 100%;\" title=\"Kotlin para DEVs Java: Aprenda a Linguagem Padr\u00e3o do Android\" src=\"https:\/\/raw.githubusercontent.com\/leandrocgsi\/blog-images\/main\/20-kotlin.png\"><br \/>\n<\/a><\/p>\n<div align=\"right\"><div class=\"sharexyWidgetNoindexUniqueClassName\"><div id=\"shr_42390089\"><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>E agora vai um post r\u00e1pido e rasteiro ensinando como aproveitar uma das funcionalidades mais bacanas providas pelo Maven quando trabalhamos com o JBoss AS 7 ou JBoss EAP \u00e9 o deploy autom\u00e1tico dos artefatos diretamente no cont\u00eainer. Isso acaba por facilitar bastante o processo de test in code. Para isso precisamos apenas adicionar o [&#8230;]<\/p>\n<div align=\"right\">\n<div class=\"sharexyWidgetNoindexUniqueClassName\">\n<div id=\"shr_42390089\"><\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[86,114,113],"tags":[176,202,201],"_links":{"self":[{"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/posts\/635"}],"collection":[{"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/comments?post=635"}],"version-history":[{"count":5,"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/posts\/635\/revisions"}],"predecessor-version":[{"id":1457,"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/posts\/635\/revisions\/1457"}],"wp:attachment":[{"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/media?parent=635"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/categories?post=635"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.semeru.com.br\/blog\/wp-json\/wp\/v2\/tags?post=635"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}