Cómo ejecutar amarre: gestión guerra usando una guerra definida por las coordenadas de Maven?

StackOverflow https://stackoverflow.com/questions/2258346

Pregunta

Antecedentes: Soy la creación de un módulo de pruebas funcionales en un proyecto Maven. Usamos el experto-embarcadero-plugin para la prueba.

Tengo el plugin embarcadero estableció como se describe aquí (para jugar muy bien con el plugin a prueba de fallos), pero lo que me gustaría hacer es instalar el artefacto de guerra de nuestro módulo web utilizando muelle principal (que acaba de ser instalado en el repositorio Maven local por el momento en que el módulo de prueba funcional se está ejecutando).

gestión guerra meta tiene un elemento que tiene <webApp> un camino cadena a una guerra para desplegar. Me gustaría mucho más especifico la guerra para implementar utilizando el experto coordenadas definidas por nuestro módulo web. ¿Hay alguna manera de hacer esto?

Las posibles soluciones:

  1. Sección 4.13 de "Mejor construye con Maven" describe el uso de carga para desplegar una guerra especificado mediante coordenadas de Maven, pero eso es una exageración grave teniendo en cuenta que estamos usando embarcadero.
  2. Más razonable OMI está utilizando la dependencia:. De copia para copiar el artefacto guerra justa incorporado-and-instalado para una trayectoria fija en el directorio de destino de la pruebas del módulo funcional, que luego puede proporcionar en el elemento de configuración <webApp> del plugin embarcadero
¿Fue útil?

Solución

  

objetivo de ejecución de la guerra El plugin embarcadero tiene un elemento que tiene una trayectoria de cadena a una guerra de implementar. Me gustaría mucho más especifico la guerra para implementar utilizando el experto coordenadas definidas por nuestro módulo web. ¿Hay alguna manera de hacer esto?

no es realmente se supone Este plugin embarcadero experto para ser utilizado, el plugin despliega la guerra del módulo actual, lo que quiere hacer no se admite de forma predeterminada.

  

Sección 4.13 de "Mejor construye con Maven", describe el uso de la carga de desplegar una guerra especificado mediante coordenadas de Maven,

Sí, por carretera puede hacer esto de una manera limpia.

  

pero eso es una exageración grave teniendo en cuenta que estamos usando embarcadero.

No estoy de acuerdo. En primer lugar, el complemento de amarre no es compatible con lo que quiere hacer fuera de la caja (por lo que no puede ser la herramienta adecuada). En segundo lugar, seria una exageración es muy exagerado, un error de hecho, sobre todo teniendo en cuenta que la carga requiere muy poca configuración (cero?) Para un embarcadero incrustado.

  

Más razonable OMI está utilizando la dependencia: copia para copiar el artefacto guerra justa incorporado-and-instalado para una trayectoria fija en el directorio de destino de pruebas módulo funcional

Sin ofender, pero toda su pregunta suena un poco como: Tengo un martillo, que estaba bien para un clavo, lo puedo usar para un tornillo teniendo en cuenta que la obtención de un destornillador parece una exageración grave Para responder a esta pregunta (que es de alguna manera lo que está diciendo), puede utilizar dependency:copy y obtener todo el trabajo con el plugin Maven embarcadero, pero esto es un truco (y ya que estás en realidad no pedir cualquier pregunta, supongo que quería una opinión sobre esto). Por supuesto, la decisión final pertenece a usted:)

Por si acaso, aquí es cómo iba a aplicar esto con carga:

<dependencies>
  <dependency>
    <groupId>war group id</groupId>
    <artifactId>war artifact id</artifactId>
    <type>war</type>
    <version>war version</version>
  </dependency>
  ...
</dependencies>
...
<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.cargo</groupId>
      <artifactId>cargo-maven2-plugin</artifactId>
      <configuration>
        <!-- Container configuration -->
        <container>
          <containerId>jetty6x</containerId>
          <type>embedded</type>
        </container>
        <!-- Configuration to use with the container or the deployer -->
        <configuration>
          <deployables>
            <deployable>
              <groupId>war group id</groupId>
              <artifactId>war artifact id</artifactId>
              <type>war</type>
              <properties>
                <context>war context</context>
              </properties>
            </deployable>
          </deployables>
        </configuration>
        <!-- Don't wait, execute the tests after the container is started -->
        <wait>false</wait>
      </configuration>
      <executions>
        <execution>
          <id>start-container</id>
          <phase>pre-integration-test</phase>
          <goals>
            <goal>start</goal>
          </goals>
        </execution>
        <execution>
          <id>stop-container</id>
          <phase>post-integration-test</phase>
          <goals>
            <goal>stop</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
    ...
  </plugins>
  ...
</build>

Y no creo que esto puede ser objetivamente calificado como "una exageración grave".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top