2010-10-07 24 views
6

Me preguntaba cuál sería la mejor práctica para implementar un archivo WAR empaquetado maven en tomcat. Usando liberación experto complemento consigo un archivo de la guerra versionado para mi proyecto por ejemplo: myservice-1.0.0.warimplementando un archivo WAR versionado en tomcat

me gustaría implementarlo en Tomcat para que pueda acceder a ella de la siguiente manera por ejemplo: http://localhost:8080/myservice

Por defecto, tomcat explota el archivo war como un directorio con un nombre myservice-1.0.0 bajo CATALINA_HOME/webapps. Pero quiero explotar la guerra como un directorio con un nombre myservice por las razones mencionadas anteriormente.

Sé que puedo simplemente cambiar el nombre myservice-1.0.0.war >> myservice.war y luego implementarlo en Tomcat.

¿Quería saber qué hacen los demás?

Respuesta

3

Lo haría mencionando myservice como artifactId y el nombre final y utilizando el complemento de carga maven para implementar en tomcat. http://cargo.codehaus.org/Maven2+Plugin+Tips

+0

gracias. Utilizo la identificación del artefacto como myservice pero también necesito versionar el proyecto, que en mi caso es 1.0.0 ¿A qué consejo en particular se refiere en el enlace que proporcionó? – andthereitgoes

+0

ok ... en la etiqueta de compilación hay una opción para proporcionar el nombre final que se convierte en el nombre de la guerra. ¿Has intentado configurarlo? –

+0

oh genial gracias. Me olvide de eso. Sí, esa es una opción, definitivamente podría intentar eso. Todavía estoy interesado en descubrir cómo otros se acercan a él para sus compilaciones de producción. – andthereitgoes

0

En lugar de cambiar el nombre del archivo de la guerra que podría hacer esto:

Simplemente agregue el siguiente en su tomcat-dir/conf/server.xml entre <Host>..<\Host> etiquetas.

para: archivo myservice-1.0.0.war

<Context path="/myservice" docBase="/myservice-1.0.0" debug="0" reloadable="true"></Context> 

Reference

+0

Eso es razonable para las versiones principales, pero si su versión cambia a menudo es posible que prefiera algo más automatizado. Podría mezclar tu solución con la anterior, para recortar el número de versión menor del nombre del archivo. – djjeck

1

me encontré con el mismo problema. Lo que funcionó para mí estaba insertando este elemento de propiedades en la carga de configuración de despliegue:

    <deployable> 
         <groupId>org.something</groupId> 
         <artifactId>something-idm-esb</artifactId> 
         <properties> 
          <context>something-idm-esb</context> 
         </properties> 
         <type>war</type> 
        </deployable> 

Sin este elemento de propiedades, la aplicación se desplegaría a localhost: 8080/algo-IDM-ESB-0.9.14.2 que no lo es la aplicación necesita en tiempo de ejecución. Con la sección de propiedades, la aplicación se implementa en localhost: 8080/something-idm-esb/

Cuestiones relacionadas