2010-05-12 14 views
12

¿Es posible ejecutar la secuencia de comandos build.xml con Maven?Ejecute build.xml con Maven

Este script comprueba todos mis proyectos y subproyectos y me acabo de acostumbrar a usar maven, realmente no usé mucha hormiga antes y sé que la hormiga se puede usar con Maven. Entonces mi pregunta es: ¿cómo?

Respuesta

7

Realmente no soy un gran fan de este enfoque (ya sea utilizar Ant o Maven, pero no una mezcla bastarda), pero se puede utilizar un build.xml externo con el 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> 

Y a continuación, ejecutar mvn antrun:run (o ponga la configuración dentro de execution si desea vincular el complemento AntRun a una fase del ciclo de vida, consulte la página Usage).

Actualización: Si está utilizando cosas de ant-contrib, necesita declararlo como dependencia del complemento. Actualicé la configuración del complemento para reflejar esto. También tenga en cuenta el elemento taskdef que he agregado (aunque no estoy seguro de que necesite el atributo classpathref).

+0

$ {basedir} es qué ubicación? Al lado de pom.xml? o? –

+0

@Gandalf Sí, '$ {basedir}' representa el directorio que contiene pom.xml –

+0

Intenté esto usando v1.7 del plugin antrun y parece que el objetivo ahora se ejecuta, por ejemplo: 'mvn antrun: run' –

0

Puede ejecutar scripts ant a través del Maven-Ant Plugin, pero ¿por qué necesita Ant para pagar su proyecto? ¿No has organizado tus subproyectos para estar en el mismo árbol?

+1

Coloco el objetivo ant entre las etiquetas de tareas y obtengo este error 'Problema: error al crear la tarea o escriba target Causa: el nombre no está definido. –

+0

@khmarbaise' ¿No organizó sus subproyectos para estar en el mismo árbol' - ¿qué quieres decir? –

Cuestiones relacionadas