Aquí podría ser tu PUBLICIDAD


¿Cómo despliegue varias aplicaciones web de igual a igual desde un pom principal?

votos
18

Tengo un conjunto de aplicaciones web que administro y estoy intentando mover a maven.

/pom.xml // padre pom
 webapp1 / pom.xml // configurado para señalar al padre
 webapp2 / pom.xml // igual de webapp1 y puntos a parent.

cada uno de los webapps se refiere al pom padre, y ambos tienen actualmente un plugin maven jetty que funciona.

Mi pregunta es ¿cómo puedo montar cada una de las aplicaciones web desde el pom padre de modo que mvn embarcadero: ejecutar funciona en el directorio principal?

edit to anwer: Pascal T El problema no es tanto que me da un error cuando intento ejecutar el comando desde la raíz pom, pero no estoy seguro de cómo configurarlo.

por ejemplo, el webapp1 / pom.xml se ve así:

<project>
...
<plugins>
  <plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>maven-jetty-plugin</artifactId>
  </plugin>
</plugins>
...
</project>

cambiando a este directorio y escribiendo mvn embarcadero: la ejecución funciona muy bien y me permite pulsar: http: // localhost: 8080 / webapp1 .

Sin embargo, lo que me gustaría sería estar en el padre de webapp1, y ejecutar todas las 'n' webapps del directorio principal. Por lo tanto, tiene http: // localhost: 8080 / webapp1 y http: // localhost: 8080 / webapp2 disponible con un parámetro de línea de comando.

Por cierto, si la respuesta involucra un plugin tomcat, estaría bien.

Publicado el 12/03/2009 a las 18:21
fuente por usuario Nathan Feger
En otros idiomas...        العربية       

2 respuestas

votos
10

EDITAR : He editado por completo mi primera respuesta ahora que tengo una mejor comprensión de las expectativas del OP.

Eche un vistazo a Cargo , un envoltorio delgado que le permite manipular contenedores Java EE de forma estándar .

De hecho, hay un tutorial en el sitio web de Cargo que muestra cómo usar el complemento de Cargo Maven2 para iniciar / detener automáticamente un contenedor (posiblemente desplegando algunas implementaciones en él cuando se inicia), que es lo que estás buscando de lo que he entendido.

Simplemente no estoy seguro de que sea factible hacerlo desde el directorio principal y si es un requisito o si estaría bien hacerlo desde otro directorio. Volveré sobre esto más tarde. Primero echemos un vistazo a la configuración del plugin Cargo Maven2.

En su caso, puede comenzar con la configuración mínima (que usa Jetty 5.x, que es el contenedor predeterminado de Cargo):

[...]
<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.cargo</groupId>
      <artifactId>cargo-maven2-plugin</artifactId>
    </plugin>
  </plugins>
</build>
[...]

Si desea usar Jetty 6.x, deberá especificar <containerId>y <type>en el <container>elemento:

[...]
<plugin>
 <groupId>org.codehaus.cargo</groupId>
 <artifactId>cargo-maven2-plugin</artifactId>
 <configuration>
   <container>
     <containerId>jetty6x</containerId>
     <type>embedded</type>
   </container>
 </configuration>
</plugin>
[...]

A continuación, añadir los módulos que desea implementar mediante la definición de deployables explícitamente dentro de la configuración del complemento (consulte la Guía de referencia Maven2 Plugin para los detalles de la configuración):

<deployables>
  <deployable>
    <groupId>com.mycompany.myproject</groupId>
    <artifactId>myproject-alpha</artifactId>
    <type>war</type>
    <properties>
      <context>optional alpha root context</context>
    </properties>
  </deployable>
  <deployable>
    <groupId>com.mycompany.myproject</groupId>
    <artifactId>myproject-beta</artifactId>
    <type>war</type>
    <properties>
      <context>optional beta root context</context>
    </properties>
  </deployable>
  [...]
</deployables>

Con esto, deberías poder iniciar Jetty y desplegar tus webapps con un simple (para ejecutar desde el proyecto que contiene la configuración del complemento de carga):

$ mvn cargo:start

Simplemente no estoy seguro de que esto pueda funcionar con el padre pom (me pregunto si esto puede llevar a problemas de dependencias cíclicas) y no lo probé. Pero personalmente, pondría todas estas cosas en el pomo de un proyecto dedicado, por ejemplo, en un proyecto hermano de tus aplicaciones web, y no en el pom padre. No creo que sea realmente un gran problema, y ​​en mi humilde opinión es una mejor configuración, especialmente si planeas usar carga para las pruebas de integración .

Respondida el 12/03/2009 a las 08:38
fuente por usuario Pascal Thivent


Aquí podría ser tu PUBLICIDAD


votos
6

Tal vez este enlace resuelva tu problema:

http://www.jiajia.eu/post/2008/10/08/Deploy-multiple-web-apps-with-maven-jetty-plugin.aspx .

el enlace de arriba está roto, así que aquí hay uno nuevo:

http://docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin

Consulte la sección "Ejecución de varias aplicaciones web".

Respondida el 18/09/2009 a las 07:46
fuente por usuario Janning