Como integrar tareas Ant en Maven

En este tutorial nuestro compañero nos enseña como complementar maven usando ant y obtener mayor potencia en su conjunto

Índice de contenidos

  • 1. Introducción
  • 2. Entorno
  • 3. Configurando el pom.xml
  • 4. Generando un archivo EAR usando Ant
  • 5. Conclusiones
  • 6. Sobre el autor

1. Introducción

Ya hemos visto varios tutoriales de Maven, y hemos vistos que con Maven podemos hacer muuuuuchas cosas. Sin embargo siempre encontraremos alguna tarea que no es capaz de hacer (por ejemplo en el campo de la generación de código, donde Maven está más flojo).

En estas ocasiones podemos desarrollar un plugin de Maven (Javier Antoniucci ya nos contó como enhttps://adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=PluginsMaven). Otra opción sería llamar a tareas de Ant (http://ant.apache.org/) para hacer lo que necesitamos.

En este tutorial vamos a explorar un poco la segunda opción, viendo como podemos, desde nuestro pom.xml, invocar tareas de Ant.

Otro motivo muy interesante por el cual nos puede interesar invocar tareas de Ant desde el pom.xml, es para migrar poco a poco proyectos que actualmente tenemos con Ant, a Maven.

 

2. Entorno

El tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil Asus G1 (Core 2 Duo a 2.1 GHz, 2048 MB RAM, 120 GB HD).
  • Sistema Operativo: GNU / Linux, Debian (unstable), Kernel 2.6.23, KDE 3.5
  • JDK 1.5.0_13 (instalada con el paquete sun-java5-jdk de Debian)
  • Maven 2.0.8
  • Ant 1.7.0

3. Configurando el pom.xml

Para ejecutar tareas de Ant en nuestro

Text
pom.xml

basta con configurar el plugin

Text
maven-antrun-plugin

(http://maven.apache.org/plugins/maven-antrun-plugin/):

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>

 

Vamos a ver un ejemplo sencillo (sacado de la propia documentación del plugin):


	
    4.0.0
    my-test-group
    my-test-app
    1.0-SNAPSHOT

    
        
            
                org.apache.maven.plugins
                maven-antrun-plugin
                
                    
                        show-classpaths
                        compile
                        
                            
                                
                                
                                
                                

                                
                                
                                
                                
                            
                        
                        
                            run
                        
                    
                
            
    

Como al configurar cualquier plugin de Maven, con

Text
&lt;goal&gt;

le indicamos que objetivo del plugin queremos ejecutar, en este caso el

Text
run

. Y con

Text
&lt;phase&gt;

indicamos en que fase del ciclo de vida de Maven queremos hacer la ejecución.

Lo interesante es lo que tenemos en el elemento

Text
&lt;tasks&gt;

, aquí estamos escribiendo directamente tareas de Ant. En el ejemplo vemos como asignamos a propiedades los distintos classpath, y luego los mostramos por consola.

Si bien esto es posible, no es muy recomendable, ya que el

Text
pom.xml

queda muy “cargado”. Es mejor tener nuestras tareas de Ant en un

Text
build.xml

e invocar a este con la tarea de Ant

Text
&lt;ant&gt;

. En el apartado siguiente veremos un ejemplo de esto.

 

4. Generando un archivo EAR usando Ant

Ahora vamos a ver un ejemplo de como generar un archivo EAR usando un script en Ant. Ojo, esto es sólo un ejemplo de como integrar scripts de Ant con Maven, si queremos generar un archivo EAR desde Maven, es más interesante usar el plugin

Text
maven-ear-plugin

(http://maven.apache.org/plugins/maven-ear-plugin/index.html).

Volvamos al ejemplo:


	
    4.0.0
    com.autentia.tutorial
    ant-example
    1.0-SNAPSHOT

    
        
            
                org.apache.maven.plugins
                maven-antrun-plugin
                
                    
                        package-ear
                        package
                        
                            
                                
                                    
                                    
                                    
                                
                            
                        
                        
                            run
                        
                    
                
            
    

En este ejemplo podemos ver como estamos invocando el target

Text
ear

de nuestro script

Text
build.xml

(no es necesario especificar el nombre del fichero porque

Text
build.xml

es la opción por defecto). También podemos ver como le podemos pasar parámetros a nuestro script de Ant.

Ahora mostramos como sería el script build.xml:




    

    
        
		
        
        
	
        
    

 

5. Conclusiones

Con estos sencillos ejemplos hemos visto como podemos aumentar la potencia de Maven, llamando a scripts de Ant.

Antes de terminar lo que si os quiero aconsejar es que no abuséis de esta técnica, Maven ya tiene multitud de plugins para hacer prácticamente de todo; así que os recomiendo que, aunque tengáis experiencia con Ant y estéis empezando con Maven, os deis una vuelta por http://maven.apache.org/plugins/.

Usar directamente los plugins de Maven siempre os va a ofrecer más ventajas, ya que se integran con todo el ciclo de vida de Maven. Por ejemplo, en el ejemplo que hemos visto antes en el que generamos un archivo EAR, este archivo no se instalará en nuestro repositorio local al hacer

Text
mvn install

, ni en el remoto al hacer

Text
mvn deploy

.

 

6. Sobre el autor

Alejandro Pérez García, Ingeniero en Informática (especialidad de Ingeniería del Software)

Socio fundador de Autentia (Formación, Consultoría, Desarrollo de sistemas transaccionales)

mailto:alejandropg@autentia.com

Autentia Real Business Solutions S.L. – “Soporte a Desarrollo”

http://www.autentia.com

Comentarios

Un comentario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

He leído y acepto la política de privacidad

Información básica acerca de la protección de datos

  • Responsable: IZERTIS S.A.
  • Finalidad: Envío información de carácter administrativa, técnica, organizativa y/o comercial sobre los productos y servicios sobre los que se nos consulta.
  • Legitimación: Consentimiento del interesado
  • Destinatarios: Otras empresas del Grupo IZERTIS. Encargados del tratamiento.
  • Derechos: Acceso, rectificación, supresión, cancelación, limitación y portabilidad de los datos.
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad

Alejandro es socio fundador de Autentia y nuestro experto en Java EE, Linux y optimización de aplicaciones empresariales. Ingeniero en Informática y Certified ScrumMaster. Seguir @alejandropgarci Si te gusta lo que ves, puedes contratarle para darte ayuda con soporte experto, impartir cursos presenciales en tu empresa o para que realicemos tus proyectos como factoría (Madrid). Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación.

¿Quieres publicar en Adictos al trabajo?

Te puede interesar

Aprende cómo migrar tu sitio Joomla 3 a Joomla 5 de forma segura, manteniendo el diseño, la funcionalidad y compatibilidad con extensiones. Una guía paso a paso con recomendaciones, imágenes y buenas prácticas para actualizar sin sorpresas.
Descubre qué es Yocto Project, sus ventajas, usos reales en Izertis y cómo crear tu propia distribución Linux para Raspberry Pi paso a paso, de forma sencilla y flexible.
¿Trabajas con Drupal y SonarQube 9.9? En este artículo exploramos cómo adaptar el análisis estático para evitar falsos positivos, desactivar reglas conflictivas del Quality Profile y delegar el estilo a PHP CodeSniffer. Una guía práctica para mejorar la integración sin depender aún de SonarQube 10.