Normalmente para realizar o deploy de uma aplicação no Tomcat, temos que entrar em seu painel e realizar o upload manualmente do arquivo .war, esse processo é um pouco custoso e nem sempre temos acesso a esse painel em um ambiente de produção, para isso a própria Apache desenvolveu um plugin para automatizar o processo de deploy.
O plugin que vou apresentar agora é do Tomcat 7 porém consegui utiliza-lo normalmente com o Tomcat 9.
Configurando o Plugin
Segue a configuração do plugin tomcat7-maven-plugin:
<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>/${project.artifactId}</path> </configuration> </plugin>
A configuração do plugin é bem simples, porém cabe algumas resalvas a serem esclarecidas, note que temos as seguintes configurações para o plugin:
url = Endereço do servidor Tomcat, o path /manager/text é padrão para o processo de deploy
server = É o ID do servidor que vamos configurar a seguir no arquivo settings.xml do Maven
path = Path de deploy do projeto, normalmente utilizamos o mesmo nome do artifactId
Configurando o Server no Maven:
O elemento settings no arquivo settings.xml contém elementos usados para definir valores que configuram a execução do Maven. Estes incluem valores como o local do repositório local, servidores de repositórios remotos, alternativos e informações de autenticação.
Esse arquivo fica na home do usuário dentro da pasta .m2/, caso o arquivo não exista você pode cria-lo. Para a configuração do servidor Tomcat, vamos inserir suas informações dentro da tag server como mostra o exemplo a seguir:
Arquivo settings.xml ( ~/.m2/settings.xml ):
<?xml version="1.0" encoding="UTF-8"?> <settings ...> <servers> <server> <id>TomcatServer</id> <username>admin</username> <password>password</password> </server> </servers> </settings>
A TAG `server` / `id` do settings.xml deve ser a mesma da `server` do configuration do plugin.
Configuração de usuário do Tomcat
Já com o plugin e o server devidamente configurados, basta nos atentarmos ao usuário e senha do Tomcat. Os usuários possuem regras (rules) e para realizar o deploy via script esse usuário deve possuir uma rule de `manager-script`, segue um exemplo do arquivo tomcat-users.xml responsável pelas configurações de usuários e senhas do Servidor.
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="manager-gui"/> <role rolename="manager-script"/> <user username="admin" password="password" roles="manager-gui,manager-script" /> </tomcat-users>
Maven Goals
Com tudo devidamente configurado, o plugin nos da as seguintes funcionalidades:
mvn tomcat7:deploy
mvn tomcat7:undeploy
mvn tomcat7:redeploy