2013-05-17 1 views
3

Le plugin Maven failsafe ne fonctionnera pas sur mon projet. Si je lance mvn, vérifiez seulement les exécutions de surefire. Si je tape failsafe mvn: vérifier échoue avec l'erreur suivante:maven-failsafe-plugin ne sera pas exécuté sur vérifier et ne trouve pas xml sur failsafe: vérifier

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-failsafe-plugin:2.11:verify (default-cli) on project experiment-server: /home/user/workspace/MyProject-Main/MyProject-IntegrationTest/target/failsafe-summary.xml (The system cannot find the path specified) -> [Help 1] 

Je basiquement ont le même problème que: failsafe plugin won't run on one project but will run on another -- why? Avec la différence que mon pom ressemble déjà ceci:

<plugin> 
    <artifactId>maven-failsafe-plugin</artifactId> 
    <version>2.14.1</version> 
    <executions> 
     <execution> 
      <id>failsafe-integration-tests</id> 
      <phase>integration-test</phase> 
      <goals> 
       <goal>integration-test</goal> 
      </goals> 
     </execution> 
     <execution> 
      <id>failsafe-verify</id> 
      <phase>verify</phase> 
      <goals> 
       <goal>verify</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

Et c'était la solution à ce problème de gars. Sauf que les solutions sur ce site n'ont pas fonctionné pour moi. Quelqu'un peut-il indiquer où j'ai foiré?

J'ai aussi le problème que je veux démarrer un serveur avec exec-maven-plugin en phase de pré-intégration. Mais quand j'essaie mvn-verify, c'est la toute dernière chose qui est exécutée.

Répondre

5

Je viens de trouver pour celui-ci, la solution est ici: http://maven.apache.org/surefire/maven-failsafe-plugin/plugin-info.html

maven-plugin-failsafe, contrarely Maven compilateur-plugin par exemple, n'est pas dans le cycle de vie de build Maven par défaut.

Par conséquent, il faut respecter cette hiérarchie tags:

<project> 
    <build> 
    <pluginManagement> 
     <plugins> 
     <!-- For understanding only, below is the 'maven-compiler-plugin': 
      its path is 'project -> build -> pluginManagement -> plugins 
      -> plugin', because it's defaulty part of the maven build 
      lifecycle: we just 'manage' it --> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      .. 
     </plugin> 
     </plugins> 
    </pluginManagement> 
    <plugins> 
     <!-- HERE is the 'maven-failsafe-plugin': 
      its path is 'project -> build -> plugins -> 
      plugin', because it's NOT defaulty part of 
      the maven build lifecycle: we have to 
      'define' it, and not just manage it as 
      stated earlier --> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-failsafe-plugin</artifactId> 
     .. 
     </plugin> 
    </plugins> 
    </build> 
<project> 

Je cite le lien de la documentation officielle: « Pour définir la version du plugin dans votre POM parent » et « Pour utiliser les objectifs du plugin dans votre POM ou d'un parent POM ". Il faut faire attention à la différence.

1

J'ai déplacé mon extrait de poms de failsafe aux parents pom et cela semble faire l'affaire. Je ne sais pas pourquoi.

+0

Exactement, c'est ce que j'ai trouvé. Garder la configuration sur pom enfant donnait une exécution de test irrégulière. Déplacé au sens fait par parent –

Questions connexes