2010-05-12 7 views
12

Est-il possible d'exécuter le script build.xml avec Maven?Exécuter build.xml avec Maven

Ce script extrait tous mes projets et sous-projets et je me suis juste habitué à utiliser maven, je n'ai pas vraiment utilisé beaucoup de fourmi auparavant et je sais que la fourmi peut être utilisée avec Maven. Donc ma question est: comment?

Répondre

7

Je ne suis pas un grand fan de cette approche (soit utiliser Ant ou Maven, mais pas un mélange bâtard), mais vous pouvez utiliser un build.xml externe avec le Maven AntRun Plugin:

<project> 
    ... 
    <build> 
    <plugins> 
     ... 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-antrun-plugin</artifactId> 
     <configuration> 
      <tasks> 
      <taskdef resource="net/sf/antcontrib/antcontrib.properties" 
       classpathref="maven.plugin.classpath" /> 
      <ant antfile="${basedir}/build.xml"> 
       <target name="test"/> 
      </ant> 
      </tasks> 
     </configuration> 
     <dependencies> 
      <dependency> 
      <groupId>ant-contrib</groupId> 
      <artifactId>ant-contrib</artifactId> 
      <version>1.0b3</version> 
      </dependency> 
     </dependencies> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

Et puis exécutez mvn antrun:run (ou placez la configuration dans un execution si vous souhaitez lier le plugin AntRun à une phase de cycle de vie, reportez-vous à la page Usage).

Mise à jour: Si vous utilisez des choses de ant-contrib, vous devez le déclarer en tant que dépendance du plugin. J'ai mis à jour la configuration du plugin pour refléter cela. Notez également l'élément taskdef que j'ai ajouté (je ne suis pas sûr que vous ayez besoin de l'attribut classpathref cependant).

+0

$ {basedir} est quel emplacement? À côté du fichier pom.xml? ou ? –

+0

@Gandalf Oui, '$ {basedir}' représente le répertoire contenant pom.xml –

+0

J'ai essayé ceci en utilisant v1.7 du plugin antrun et il semble que le but soit maintenant exécuté par exemple: 'mvn antrun: run' –

0

Vous pouvez exécuter des scripts ant via le Maven-Ant Plugin, mais pourquoi avez-vous besoin d'Ant pour extraire votre projet? N'avez-vous pas organisé vos sous-projets pour qu'ils soient dans le même arbre?

+1

Je place la cible ant entre les tags de tâches et j'obtiens cette erreur 'Problème: impossible de créer une tâche ou de taper la cible Cause: Le nom est indéfini.' –

+0

@khmarbaise 'N'avez-vous pas organisé vos sous-projets pour qu'ils soient en le même arbre »- que voulez-vous dire? –

Questions connexes