Configurar maven para hacer deploy en Tomcat

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

http://localhost:8080/Pizza

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/

http://www.avajava.com/tutorials/lessons/how-do-i-deploy-a-maven-web-application-to-tomcat.html?page=1

Anuncios

Comenta la entrada

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s