Comment exécuter la jetée: courir la guerre en utilisant une guerre défini par des coordonnées de Maven?

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

Question

Contexte: Je suis la mise en place d'un module fonctionnel des tests dans un projet Maven. Nous utilisons le maven-plugin-jetée pour les tests.

J'ai le plugin jetée mis en place comme décrit ici (jouer bien avec le plug-in Failsafe), mais ce que je voudrais faire est de déployer l'artefact de guerre de notre module principal Web en utilisant la jetée (qui vient d'être installé dans la prise en pension de maven locale au moment où le module de test fonctionnel est en cours d'exécution).

Le plug-in de la jetée de but la gestion guerre a un élément qui prend <webApp> un chemin de chaîne à une guerre à déployer. Je précise bien plutôt la guerre à déployer en utilisant les coordonnées Maven définies par notre module Web. Est-il possible de le faire?

solutions de contournement possibles:

  1. Section 4.13 « Meilleure Builds avec Maven » décrit l'utilisation de la cargaison pour déployer une guerre spécifiée en utilisant les coordonnées de Maven, mais c'est grave surpuissant étant donné que nous utilisons jetée.
  2. OMI utilise la dépendance plus raisonnable. Copie pour copier l'artefact de guerre juste construit et installé sur un chemin fixe dans le répertoire cible du module tests fonctionnels, que je peux ensuite fournir dans l'élément de configuration <webApp> du plugin jetée
Était-ce utile?

La solution

  

Le but de l'exécution guerre du plugin jetée a un élément qui prend un chemin de chaîne à une guerre à déployer. Je précise bien plutôt la guerre à déployer en utilisant les coordonnées Maven définies par notre module Web. Est-il possible de le faire?

Ce n'est pas vraiment le plugin jetée Maven est censé être utilisé, le plugin déploie la guerre du module en cours, ce que vous voulez faire est pas pris en charge par défaut.

  

Section 4.13 « Meilleure Builds avec Maven » décrit l'utilisation de la cargaison pour déployer une guerre spécifiée en utilisant les coordonnées de Maven,

Oui, Cargo peut le faire de manière propre.

  

mais que nous est grave étant donné que nous utilisons surpuissant jetée.

Je ne suis pas d'accord. Tout d'abord, le plug-in de la jetée ne supporte pas ce que vous voulez faire de la boîte (il ne peut pas être l'outil à droite). En second lieu, sérieux surpuissant est très exagéré, une idée fausse en fait, en particulier étant donné que la cargaison ne nécessite que très peu de configuration (zéro?) Pour une jetée intégrée.

  

En savoir plus raisonnable OMI utilise la dépendance: Copier pour copier l'artefact de guerre juste construit et installé sur un chemin fixe dans le répertoire cible du module tests fonctionnels

Aucune infraction, mais votre question tout sonne un peu comme: J'ai un marteau, il était très bien pour un clou, je peux l'utiliser pour une vis, étant donné que l'obtention d'un tournevis semble overkill grave Pour répondre à cette question (qui est en quelque sorte ce que vous dites), vous pouvez utiliser dependency:copy et obtenir le tout travailler avec le plugin jetée maven, mais c'est un hack (et puisque vous êtes en train de ne pas poser de question, je pense que vous vouliez une opinion sur ce sujet). Bien sûr, la décision finale vous appartient:)

Juste au cas où, voici comment je mettre en œuvre ce avec Cargo:

<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>

Et je ne pense pas que cela peut être objectivement qualifiée de « surpuissance grave ».

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top