Desplegar en Tomcat 7 con plugin de maven

Actualización de esta entrada ...
El entorno que he utilizado es maven 3.3.3, sobre un jdk 1.8.0_65 y eclipse Mars y las pruebas han sido sobre un Tomcat7.0.65 y un Tomcat 9.0.0.M1 y el plugin del tomcat7 de la versión 2.2.
Varias cosas han cambiado sobre la anterior versión y no son triviales.
Por otro lado suele ser más cómodo para desarrollo desplegar en un tomcat embebido o en un jetty o con spring-boot o cualesquiera otra de las formas habituales.
Al lio....
Primero hay que configurar los permisos del tomcat y tener un usuario con un rol concreto: "manager-script".
En el tomcat-user.xml, carpeta conf
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager-script"/>
  <user username="tomcat" password="tomcat" roles="manager-script,manager, admin"/>
</tomcat-users>

Y en el pom, he indicado los parámetros del servidor, para descargar el pom completo aqui:
Obviamente el servidor tomcat tiene que estar lanzado para que pueda desplegarse.

La parte fundamental es la configuración:
<plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <configuration>
                    <server>IntegracionServer</server>
                    <url>http://192.168.12.135:8080/manager/text</url>
                    <username>tomcat</username>
                    <password>tomcat</password>
                    <path>/restserwar</path>
                    <update>true</update>
                </configuration>
            </plugin>
        </plugins>

Con los parámetros de la URL del servidor, si no se le indica nada apunta a localhost. Los otros dos parámetros son  usuario y la password del manager-script, que hemos configurado en el tomcat-user.xml.
Para desplegar en ese servidor podemos ejecutar:
mvn tomcat7:redeploy
igualmente podemos ejecutar deploy y undeploy, pero lo habitual es hacer los dos procesos consecutivamente  y así  lo hacemos de una vez.
Podemos seguir haciendo
mvn tomcat7:run
y nos lanzará un tomcat embebido.
En la mayoría de ocasiones nos va a dar igual probar sobre un tomcat 6 y hacerlo según la entrada anterior, pero tampoco está de más hacerlo en un entorno de integración próximo al final.
No he probado ha desplegar así en un tomcat8, pero puesto que funciona en el 7 y el 9 quiero creer que funcionará igual.

Comentarios