2017-07-06 2 views
0

J'utilise Maven-Antrun-Plugin 1.8 pour exécuter une cible Ant qui contient un <if>. J'ai lu que ant-contrib est nécessaire pour exécuter ceci, donc j'ai inclus la dépendance à ant-contrib:ant-contrib:1.0b3. Cela provoque ant:ant:1.5 à être chargé de manière transitoire, ce qui casse la construction. Si je mets une exclusion sur ant 1.5, le <if> est de nouveau indéfini.Appel <if> de Maven-Antrun-Plugin

Récapitulatif: J'ai besoin d'une liste de dépendances valide pour le plugin maven-antrun qui me permet d'appeler <if>.

+0

Avez-vous des tâches typedef ant-contrib dans le projet Ant? Fournir une dépendance de classpath à ant-contrib-1.0b3.jar n'est pas suffisant. –

+0

Ai-je besoin de typedef dans le plugin Maven-Antrun? Si c'est le cas, comment? –

+0

Malheureusement, je ne suis pas sûr si l'intégration avec maven peut affecter le problème. Heureusement non. Si vous traitez avec Ant pur, le seul artefact de dépendance dont vous avez besoin est 'ant-contrib-1.0b3.jar'. À l'intérieur de 'build.xml' de votre Ant, avant d'utiliser la tâche' ', vous devez importer les tâches ant-contrib en faisant un tri de' '. –

Répondre

1

Peut-être ce qui suit peut aider dans votre Maven pom:

<dependencies> 
    <dependency> 
     <groupId>ant-contrib</groupId> 
     <artifactId>ant-contrib</artifactId> 
     <version>1.0b3</version> 
     <scope>provided</scope> 
     <exclusions> 
      <exclusion> 
       <groupId>ant</groupId> 
       <artifactId>ant</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
</dependencies> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>1.8</version> 
      <executions> 
       <execution> 
        <id>ID_HERE</id> 
        <phase>PHASE_HERE</phase> 
        <goals> 
         <goal>run</goal> 
        </goals> 
        <configuration> 
         <target> 
          <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpathref="maven.plugin.classpath"/> 
          <if> 
           <!-- Some if condition here --> 
           <then> 
            <!-- Ant tasks to execute if condition is true --> 
           </then> 
          </if> 
         </target> 
        </configuration> 
       </execution> 
      </executions> 
      <dependencies> 
       <dependency> 
        <groupId>ant-contrib</groupId> 
        <artifactId>ant-contrib</artifactId> 
        <version>1.0b3</version> 
        <exclusions> 
         <exclusion> 
          <groupId>ant</groupId> 
          <artifactId>ant</artifactId> 
         </exclusion> 
        </exclusions> 
       </dependency> 
      </plugin> 
     </plugins> 
    </build> 

Je comprends que cela peut ne pas être la solution la plus optimale/efficace à votre problème, mais c'est exactement ce que je me sers actuellement et fonctionne sans problèmes.