Pregunta

¿alguien sabe una manera de configurar un objetivo experta a desplegar en un servidor Tomcat después de ejecutar una acumulación? Sé que esto es posible mediante el experto-tomcat-plugin, pero parece como si ya que esto sólo funciona para Maven 2, mientras que estoy usando Maven 1.1

Actualmente estoy intentando fijar Hudson para esto sería parte de mi fase continua Intergration que espero que ejecutar la siguiente manera:

  1. Crecimiento todos los componentes necesarios
  2. Construir y desplegar la guerra con el servidor (local)
  3. Ejecutar pruebas de selenio

Cualquier ayuda con esto sería muy apreciada.

Gracias.

¿Fue útil?

Solución 3

He descubierto que la mejor manera de hacer esto - es en realidad bastante fácil de escribir una meta experto para transferir la guerra. El objetivo podría escribirse de la siguiente manera:

<goal name="deployWar" prereqs="buildWar">

    <echo message="+---------------------------------------------------+" />
    <echo message="installing war file to server" />
    <echo message="+---------------------------------------------------+" />

    <j:set var="deploy.dir" value="${server}/webapps" />

    <copy file="${maven.build.dir}/${pom.artifactId}.war"
        todir="${deploy.dir}" overwrite="true" />
</goal>

La variable de servidor puede ser determinada en su archivo project.properties. También asegúrese de especificar que un requisito previo para construir el GUERRA antes de intentar desplegarlo. Espero que esto ayude a alguien!

Otros consejos

Sinceramente me gustaría refactorizar su proyecto de utilizar Maven 2, hay varias guías que pueden ayudar a facilitar la migración del dolor (Google Maven 2 migración ), y existe incluso la experta en-uno-plugin para convertir su project.xml o empaquetar su Maven 1 plugins de Maven 2.

Si usted no puede hacer eso, usted podría utilizar el Maven 1 hormiga complemento para copiar la guerra al directorio webapps de Tomcat después de que haya sido empaquetado. Tomcat detectará la nueva guerra y debe hot-desplegarlo.

Tengo que admitir, yo no sé mucho sobre el plugin para Maven, pero hago todo en un simple script que limpia los directorios de trabajo, así (no sé si el plugin Maven limpia los directorios de trabajo).

CALL mvn clean install
CALL rm C:\apps\tomcat\webapps\Foo.war 
CALL rm -rdf C:\apps\tomcat\webapps\foo
CALL rm -rdf C:\apps\tomcat\work\Catalina
CALL copy C:\webapps\workspace\Foo\target\Foo.war C:\apps\tomcat\webapps\Foo.war /y

(sé, -1 para MS scripting)

El punto es que generalmente quiere limpiar el directorio de trabajo y el directorio de aplicaciones web y el plugin de Maven 1 Ant no hacerlo (por lo que sé que si, y leer desde el enlace proporcionado). Tomcat se "supone" para volver a crear los archivos de clase en estos directorios cuando explota el archivo de la guerra, pero cualquiera que haya trabajado con él el tiempo suficiente sabe:. Esto no es siempre el caso

Por lo tanto, si el plugin no limpia estos directorios, es inútil en lo que a mí respecta. Escribir una pequeña secuencia de comandos barato como el servicio proporcionado. Se tarda 2 minutos.

webappDirectory puede configurarse para maven-guerra-plugin para desplegar la guerra explotó. No se necesita nada especial, simplemente correr experto instalar.

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
    <webappDirectory>path/to/server/deploy/dir</webappDirectory>
</configuration>
</plugin>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top