Usando maven-deploy-plugin
E outro tópico muito interessante é o deploy automático do pacote montado. Digamos que construímos nossa própria biblioteca usando o Maven. Como o enviamos automaticamente para um repositório Maven local, corporativo ou central?
O Maven tem um plug-in maven-deploy-plugin especial para isso . Exemplo:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.5</version>
<configuration>
<file>${project.build.directory}\${project.artifactId}-src.zip</file>
<url>${project.distributionManagement.repository.url}</url>
<repositoryId>${project.distributionManagement.repository.id}</repositoryId>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
<packaging>zip</packaging>
<pomFile>pom.xml</pomFile>
</configuration>
</plugin>
Com essas configurações, você pode enviar a biblioteca construída para o repositório Maven como um pacote válido. Não analisaremos esse processo em detalhes, mas consideraremos brevemente o que está acontecendo aqui:
A tag de arquivo especifica um arquivo que será enviado para o repositório Maven como uma nova biblioteca.
A tag url é o caminho para o repositório Maven (local/corporate/…).
A tag repositoryId especifica o identificador do repositório no qual a implantação será feita.
As tags groupId , artefatoId , version definem a identificação do pacote padrão no repositório Maven. É por esses três parâmetros que uma biblioteca pode ser identificada exclusivamente.
A tag de embalagem é usada para garantir que o resultado seja enviado como um único arquivo zip. Se você não especificar, haverá um arquivo jar, mesmo que você tenha vários arquivos jar.
A tag pomFile é opcional e permite enviar outro pom.xml para o repositório que não contenha dados ocultos ou indiretos.
Implantando um aplicativo da Web no Tomcat usando Maven
O servidor web mais popular para aplicativos web Java é o Apache Tomcat . E, claro, com a ajuda do Maven, você pode implantar arquivos war diretamente em um servidor Tomcat local ou mesmo remoto.
Aprenderemos a instalar e configurar o Tomcat algum tempo depois, mas agora tocaremos apenas no tópico de implantação automática de nosso aplicativo da web.
Passo um. Precisamos dar ao Maven acesso ao servidor Tomcat. Para fazer isso, abra o arquivo conf/tomcat-users.xml no diretório onde o Apache Tomcat foi descompactado e adicione as funções manager-gui e manager-script :
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin" password="admin" roles="manager-gui,manager-script" />
</tomcat-users>
Passo dois. Permita o acesso do Maven ao Tomcat. Para fazer isso, abra o arquivo $MAVEN_HOME/conf/settings.xml e adicione o servidor:
<?xml version="1.0" encoding="UTF-8"?>
<settings ...>
<servers>
<server>
<id>TomcatServer</id>
<username>admin</username>
<password>admin</password>
</server>
</servers>
</settings>
Passo três. Adicionamos um plug-in especial para implantação automatizada de nosso aplicativo no Apache Tomcat. O plug-in é chamado tomcat7-maven-plugin . A propósito, ele foi criado não pelos desenvolvedores do Maven, mas pelos desenvolvedores do Tomcat, como você pode imaginar pelo nome.
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>TomcatServer</server>
<path>/simpleProject</path>
</configuration>
</plugin>
</plugins>
</build>
Na seção de configuração, especifique:
- url é o endereço onde o Tomcat está sendo executado e o caminho para o gerenciador/texto
- servidor - ID do servidor do arquivo settings.xml
- path - o endereço onde o aplicativo implantado estará disponível
Comandos de gerenciamento de implantação:
mvn tomcat7:implantar | Implante o aplicativo no Tomcat |
---|---|
mvn tomcat7: desimplantar | Remover aplicativo do Tomcat |
mvn tomcat7: reimplantar | Implante novamente o aplicativo |
Implantar com plug-in de carga
Outro plug-in útil e versátil para implantar aplicativos da Web é o Cargo Plugin . Ele sabe como trabalhar com diferentes tipos de servidores web. Aqui está como implantar com ele no Apache Tomcat:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.9.10</version>
<configuration>
<container>
<containerId>tomcat8x</containerId>
<type>installed</type>
<home>Insert absolute path to tomcat 7 installation</home>
</container>
<configuration>
<type>existing</type>
<home>Insert absolute path to tomcat 7 installation</home>
</configuration>
</configuration>
</plugin>
</plugins>
</build>
Para instalar a aplicação web no seu Tomcat local, basta executar os comandos:
mvn install
mvn cargo:deploy
Se quisermos implantar em um servidor web remoto, teremos que configurar os direitos de acesso a este servidor. Para isso, basta registrá-los no pom.xml :
<configuration>
<container>
<containerId>tomcat8x</containerId>
<type>remote</type>
</container>
<configuration>
<type>runtime</type>
<properties>
<cargo.remote.username>admin</cargo.remote.username>
<cargo.remote.password>admin</cargo.remote.password>
<cargo.tomcat.manager.url>http://localhost:8080/manager/text</cargo.tomcat.manager.url>
</properties>
</configuration>
</configuration>
Implantar com IntelliJ IDEA
O Intellij IDEA faz todo o trabalho sozinho, tudo que você precisa é um Tomcat instalado .
Passo um. Crie uma configuração local do Tomcat:
Passo dois. Em seguida, selecione o Tomcat local:
Passo três. Configurando Tomcat:
Etapa quatro. Adicione o caminho à pasta Tomcat.
Quinto passo. Adicionamos nosso projeto como um artefato ao Tomcat.
Para fazer isso, vá até a guia Implantação e clique no botão + à direita .
Isso é tudo.
A propósito, se você precisar implantar em um servidor remoto, basta selecionar Remote Tomcat na segunda etapa.