Plugin tomcat para lanzar aplicación con Spring-Boot

Si en el anterior ejemplo abordábamos el problema de configurar un datasource en el contenedor de tomcat de spring-boot, esto es, el que se despliega cuando ejecutamos "spring-boot:run" ahora vamos a imaginarnos que somos más "raritos" y queremos lanzar la aplicación con el plugin "tomcat", que también tiene dicho contenedor embebido.
Hay pocos pero hay algunos cambios que tenemos que hacer:
Primero indicar en el pom que el empaquetado sea un war ya que los arquetipos de spring-boot crean por defecto un archivo jar.
Segundo tenemos que cambiar el plugin por defecto  y especificarle el plugin del tomcat,  para lo cual en el apartado build añadimos:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
La razón es que Spring-boot requiere por defecto (y sin hacer cosas raras) la especificación api-servlet 3.0 o superior. Por tanto necesitamos una versión del tomcat superior a la 7 pero con tomcat:run lo que lanzamos la versión 6 de dicho contenedor:
Una vez actualizado el plugin del tomcat ya podremos lanzar nuestra aplicación con "mvn tomcat7:run" en vez de "tomcat:run".
Por si no es obvio la aplicación lanzada con "spring-boot:run " cuelga por defecto directamente de http://localhost:8080/  y al lanzarla con el plugin de tomcat es http://localhost:8080/appname/ .

Posiblemente sea mejor opción aprender a configurar el plugin de spring-boot, pero depende de lo que queramos y sepamos hacer previamente poder lanzarlo con el bien conocido y documentado plugin de tomcat sea una alternativa a tener en cuenta.

Comentarios