programming plugin homepage example maven maven-tomcat-plugin

homepage - maven tomcat plugin example



Maven-<servidor/> en settings.xml (1)

Antes que nada déjeme decir que los profiles son una de las características más poderosas de Maven.

Primero haga un perfil en su pom.xml que se vea así:

<profiles> <profile> <id>tomcat-localhost</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <tomcat-server>localhost</tomcat-server> <tomcat-url>http://localhost:8080/manager</tomcat-url> </properties> </profile> </profiles>

Luego, en su archivo ~/.m2/settings.xml agregue entradas de servers como esta:

<servers> <server> <id>localhost</id> <username>admin</username> <password>password</password> </server> </servers>

Configure su plugin de build esta manera:

<plugin> <!-- enable deploying to tomcat --> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <version>1.1</version> <configuration> <server>${tomcat-server}</server> <url>${tomcat-url}</url> </configuration> </plugin>

Esto habilitará su perfil tomcat-localhost de manera predeterminada y le permitirá implementarlo con un simple mvn clean package tomcat:deploy .

Para implementarlo en otros destinos, configure una nueva entrada <server/> en settings.xml con las credenciales apropiadas. Agregue un nuevo profile pero deje de lado la stanza <activation/> y configúrelo para que apunte a los detalles apropiados.

Luego, para usarlo, haga mvn clean package tomcat:deploy -P [profile id] donde [profile id] es el nuevo perfil.

La razón por la cual las credenciales se configuran en settings.xml es porque su nombre de usuario y contraseña deben ser secretos en la mayoría de los casos, y no hay razón para desviarse de la forma estándar de configurar las credenciales del servidor a las que las personas tendrán que adaptarse.

Utilizo tomcat-maven-plugin para desplegar mi guerra en un servidor. Lo que tengo que hacer es configurarlo así en mi pom.xml:

<configuration> ... <url>http://localhost/manager</url> <username>admin</username> <password>admin</password> ... </configuration>

Pero, obviamente, quiero mantener esta configuración en un lugar diferente ya que trabajo en mi computadora, pero luego hay una puesta en escena y un servidor en vivo, así como la configuración del servidor es diferente.

Así que vamos a usar el .m2/settings.xml :

<servers> <server> <id>local_tomcat</id> <username>admin</username> <password>admin</password> </server> </servers>

Ahora cambia el pom.xml:

<configuration> <server>local_tomcat</server> </configuration>

¿Pero dónde poner la URL del servidor? ¡No hay lugar para eso en la configuración.xml debajo de la etiqueta del servidor! Tal vez asi

<profiles> <profile> <id>tomcat-config</id> <properties> <tomcat.url>http://localhost/manager</tomcat.url> </properties> </profile> </profiles> <activeProfiles> <activeProfile>tomcat-config</activeProfile> </activeProfiles>

..y usa la propiedad $ {tomcat.url}.

Pero entonces la pregunta es, ¿por qué usar la etiqueta de servidor en settings.xml ? ¿Por qué no usar las propiedades para el nombre de usuario y la contraseña también? ¿O hay un lugar para la URL también en la URL de configuración para que no tenga que usar las propiedades?