Ya hemos hablado aquí de utilizar Maven dentro de eclipse con el plugin m2. EL problema que tenía era que al desarrollar una aplicación web y hacer deploy se me generaba un archivo .war en el proyecto. Este archivo tenía que copiarlo en el directorio webapps de Tomcat para poder probar. Esto es un suplicio así que buscando un poco por Internet he encontrado una solución.
Si todo lo anterior te ha sonado a chino mandarín, no te preocupes, acabo de releerlo y a me tampoco me siena bien 😉
¿Cuál es el problema?
Antes cuando realizaba una aplicación web utilizando maven y quería probarla lo que hacía era generar un archivo .war en una carpeta dentro del proyecto. Iba a mano con el explorador de Windows copiaba ese archivo.war y lo pegaba dentro de la carpeta webapps que está en Tomcat. Esto era una pérdida de tiempo cada vez que quería probar algo.
Solución
Utilizar Maven-Tomcat plugin para que con el comando mvn tomcat:deploy
Pasos para montar la solución
Utiliza xampp para desarrollar aplicaciones web, pero esto es extensible si tenéis tomcat instalado.
1º Configurar el user y password de Tomcat. Por defecto Xammp trae los roles y usuarios deshabilitados, así que hay que habilitarlos para poder utilizar el plugin.
Vamos al archivo tomcat-users.xml y escribimos esto:
%TOMCAT_PATH%/conf/tomcat-users.xml
<tomcat-users> <role rolename="manager"/> <role rolename="admin"/> <user username="admin" password="qwerty" roles="admin,manager"/> </tomcat-users>
2º Dar de alta el servidor Tomcat en Maven.
Debemos decirle a maven, en nuestro caso m2 (dentro de eclipse) que tenemos un servidor Tomcat instalado para poder usarlo en un futuro.
Dentro de eclipse vamos a la pestaña Windows->preferences y una vez allí vamos a Maven->user settings
Buscamos el archivo settings.xml dentro de la carpeta .m2, si no lo encontráis no os preocupéis, yo tampoco lo tenía 😉
Dentro de este archivo damos de alta el servidor Tomcat proporcionando el usuario y password así:
<server> <id>TomcatServer</id> <username>admin</username> <password>qwerty</password> </server>
Si no tenéis archivo settings.xml aquí dejo el mío
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository/> <interactiveMode/> <usePluginRegistry/> <offline/> <pluginGroups/> <servers> <server> <id>TomcatServer</id> <username>admin</username> <password>qwerty</password> </server> </servers> <mirrors/> <proxies/> <profiles/> <activeProfiles/> </settings>
Es importante pulsar sobre “Update Settings”
3º Declarar en el pom.xml que vamos a utilizar el servidor Tomcat
Ahora nos queda solamente configurar nuestro pom.xml para que los deploy’s funcionen.
Abrimos el fichero pom.xml de nuestra aplicación web, en este caso mi aplicación se llama Pizza 😉
Declaramos el siguiente plugin dentro del pom.xml:
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <configuration> <url>http://127.0.0.1:8080/manager</url> <server>TomcatServer</server> <path>/Pizza</path> </configuration> </plugin>
Antes de terminar es necesario revisar el pom.xml para comprobar que el “maven plugin compiler” esté incluido. SI no lo está debemos incluirlo así:
<!-- Maven compiler plugin --> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>2.5.1</source> <target>2.5.1</target> </configuration> </plugin>
4º Crear la tarea en Maven para hacer deploy
Hacemos clic con el botón derecho encima del fichero pom.xml Run As-> Maven build
Nos aparecerá una pantalla como la siguiente donde tenemos que escribir tomcat:deploy
5º Listo
Vemos en el Tomcat Manager que todo está correcto
Aquí tenemos el resultado final, entrando en el navegador en
Extra
Esto solo funciona la primera vez que hacemos el deploy, para el resto de veces tenemos que configurar Maven para hacer redeploy así:
Referencias
Para este post me he basado en:
http://www.mkyong.com/maven/how-to-deploy-maven-based-war-file-to-tomcat/
Un comentario en “Configurar maven para hacer deploy en Tomcat”