2010-11-26 14 views
2

Je veux mettre le hibernate3-maven-plugin dans mon pom parent et avoir l'exécution ignorée dans les modules enfants si un fichier donné n'existe pas dans ce module.Sauter l'exécution d'un plugin maven si un fichier n'existe pas

Y at-il un moyen de le faire?

Jusqu'à présent, j'ai dû le faire:

<plugin> 
    ... 
    <configuration> 
     <skip>true</skip> 
     <propertyfile>target/test-classes/jdbc.properties</propertyfile> 
    </configuration> 
</plugin> 

Dans le POM parent et:

<plugin> 
    ... 
    <configuration> 
     <skip>${maven.test.skip}</skip> 
    </configuration> 
</plugin> 

Dans tous les POMs enfants où je veux exécuter. I.E Ceux qui ont un fichier jdbc.properties.

Répondre

4

Vous pouvez peut-être faire cela avec des profils, mais je suppose que vous ne voudrez probablement pas l'exécuter dans le projet parent, ce qui peut être problématique.
Voici quelques liens sur les profils:

Cette question, a eu un problème similaire et n'a pas été en mesure de le résoudre avec des profils:
activate-different-maven-profiles-depending-on-current-module

1

Je ne suis pas 100% sur la logistique mais vous pouvez éventuellement utiliser le maven exec plugin en combinaison avec un script shell. Le script shell vérifie la présence du fichier, puis appelle le plugin mvn en utilisant le répertoire maven pom - qui peut être obtenu et transmis au script shell via les variables d'environnement Maven.