You are on page 1of 22

Construcción de proyectos

usando Apache ANT


Marzo 2006
Mario Hidalgo Martínez

Neos Software Labs


Agenda

 Introducción a ANT.
 Las tareas básicas de ANT.
 Limitaciones.
 Conclusiones.

Neos Software Labs


Agenda

 Introducción a ANT.
 Las tareas básicas de ANT.
 Limitaciones.
 Conclusiones.

Neos Software Labs


Introducción a ANT

 Apache Ant es un proyecto creado por la Apache


Software Fundation (ASF), con el fin de tener una
herramienta de construcción independiente de la
plataforma.

 Desarrollada 100% en Java.

 La configuración esta basada en XML.

Neos Software Labs


¿Por qué usar ANT?

 La construcción se realiza independientemente de la


plataforma usada.

 Una de las principales razones es porque podemos


automatizar tareas (compilar, realizar el testing,
empaquetar, documentar, etc).

 Se integra facilmente a entornos de desarrollo (Eclipse,


JDeveloper, NetBeans).

Neos Software Labs


Makefile para Java ¿Fácil?

# compile command
.java.class:
CLASSPATH=$(CLASS_DIR):$(TOP_DIR) $(JCC) -nowarn -d
$(CLASS_DIR) $(JDEBUGFLAGS) $<

# find out target files


Nada
FILES = $(wildcard *.java) Recomendable!!
classes: $(FILES:.java=.class)

#clean target
clean:
@@ echo 'rm -f *~ *.class core *.bak $(LOCAL_CLASS_DIR)/*class'
@@rm -f *~ *.class core *.bak $(LOCAL_CLASS_DIR)/*class

Neos Software Labs


Diseño del proceso de construcción

 ¿Qué es lo que vamos a construir?


 JARS, EAR, WAR’s , Documentación.

 ¿Cuál va a ser la secuencia de pasos para realizar la


construcción?

Neos Software Labs


Agenda

 Introducción a ANT.
 Las tareas básicas de ANT.
 Limitaciones.
 Conclusiones.

Neos Software Labs


Ejecución de ANT

 ¿Qué necesito para ejecutar ANT?

La Maquina Virtual de Java.


Configurar dos variables de ambiente:
JAVA_HOME.
ANT_HOME

Neos Software Labs


ANT BuildFiles

 Antes de que ANT inicie con el proceso de construcción es


necesario crear el archivo de construcción.
 Es un archivo XML comunmente llamado build.xml
 Cada fichero tiene un proyecto (etiqueta <project>) en el
cual indicamos el nombre, el target por default y el
directorio base (un proyecto puede tener uno o muchos
targets.)
 Targets:
 Son las tareas a ejecutarse (limpiar, compilar, etc).
 Se debe especificar: el nombre, dependencias, descripción.
 Los targets se crean con la etiqueta <target>

Neos Software Labs


Algunas tareas de ANT

 Copy: Copia ficheros y directorios.

 Delete: Borra ficheros y directorios.

 Echo: Envia un mensaje a System.out o a un archivo.

 Property: Permite establecer valores de propiedades.

 Javac: Compila codigo fuente en Java.

 Javadoc: Genera la documentación del proyecto.

Neos Software Labs


Las tareas principales de ANT

 Javac: Es usado para compilar el codigo fuente:


<javac srcdir=“directorio_fuente"
destdir=“directorio_destino"
/>

 Jar: Es usado para empaquetar los archivos .class.


<jar jarfile=“nombre_del_jar"
basedir=“directorio_class“
/>
 Javadoc: Es usado para crear la documentación de la
API
<javadoc classpathref=“classpath” ….
/>

Neos Software Labs


Como creo un target?

 Para crear un target lo único que debemos de hacer es


agregar al build.xml algunas tags:

Ejemplo: Compilando el código fuente:


<target name="compila" >
<!-- Agregamos las tareas de ANT -->
<javac srcdir="src" destdir="bin" verbose="true">
<classpath refid="classpath"/>
</javac>
</target>

Neos Software Labs


Dependencias de Targets

 Un target puede que sea dependiente de otro:


 Ejemplo : Se necesita un target para compilar el codigo, pero
antes de la ejecución de este es necesario crear algunos
directorios:
<target name=“crea-dirs">
<!-- Crea los directorios en el Sistema de Archivos. -->
<mkdir dir="bin" />
<mkdir dir="jars" />
</target>

<target name="compila" depends=“crea-dirs”>


<!-- Agregamos las tareas de ANT -->
<javac srcdir="src" destdir="bin" verbose="true">
<classpath refid="classpath"/>
</javac>
</target>

Neos Software Labs


Propiedades

 Una propiedad es simplemente un parámetro en forma


de par (nombre-valor) ejemplo:
<property name="libs" value="D:\Execution Services\Versiones
ES\ES 5.4\es-core-services-5.1.3-src\lib"/>

 Para usar esos valores lo único que se necesita es


encerrar el nombre de la propiedad entre { } y
anteponiendo el simbolo de $.

<pathelement location="${libs}/commons-lang-2.1.0.jar"/>

Neos Software Labs


Un ejemplo de build.xml

Neos Software Labs


¿Como corro tareas ANT?

 Ejecutar el target por default:


 > ant  Para el caso anterior ejecuta “compile”

 Ejecutar un target en especial


 > ant clean

 Ejecutar multiples targets


 > ant clean compile otro_target

Neos Software Labs


Agenda

 Introducción a ANT.
 Las tareas básicas de ANT.
 Limitaciones.
 Conclusiones.

Neos Software Labs


Limitaciones de ANT

 Cuando un proyecto es demasiado grande, es muy


complejo darle un mantenimiento al archivo build.xml.

 Maneja una granularidad alta ya que se tienen que


especificar las tareas <javac> <java> <javadoc>.

 No hay reusabilidad de scripts entre proyectos.

Neos Software Labs


Agenda

 Introducción a ANT.
 Las tareas básicas de ANT.
 Limitaciones.
 Conclusiones.

Neos Software Labs


Conclusiones

 Conocimos la utilidad de ANT en la fase de


construcción, de un proyecto.

 Conocimos las tareas principales de ANT.

 Se mostró la sintaxis del archivo build.xml

 Se mostraron las limitaciones de ANT.

Neos Software Labs


Preguntas

?
Neos Software Labs

You might also like