2. ¿Qué es Ant?
• Ant es:
– Una utilería Java muy similar al make
– Es desarrollada y mantenida por Apache
– Se puede bajar desde la siguiente URL
• http://jakarta.apache.org/ant
• Ant se ejecuta a partir de un archivo de
tareas en formato XML
– Compilar, ejecutar, etc. aplicaciones Java
Temas selectos de J2EE
3. Tareas Ant
• Algunas de las tareas de Ant son:
– <javac>, <java>
– <jar>, <war>, <ear>
– <copy>, <delete>, <mkdir>, <move>
– <tstamp>, <touch>
– <javadoc>
Temas selectos de J2EE
4. Archivo XML…
• El archivo de configuración de las tareas de Ant,
es nombrado build.xml, y se ejecuta mediante
el comando Ant (desde un prompt)
• Cuando este archivo tiene un nombre diferente al
default, ejemplo buildApp.xml, la sentencia del
comando Ant se escribe de la siguiente manera:
– ant –f buildApp.xml
Temas selectos de J2EE
5. …Archivo XML
• El archivo de configuración de tareas Ant, debe tener la
siguiente declaración como base del mismo:
<?xml version=“1.0” encoding=“UTF-8”?>
<project name="buildWebservice" default="compile_client">
<!– Declaración de tareas Ant - >
</project>
• El atributo “name” del tag <project>, es un nombre
descriptivo
• El atributo “default”, indica cual es el conjunto de tareas
que se ejecutara al correr el comando Ant. (la
configuración de las tareas se ve en las siguientes
láminas)
Temas selectos de J2EE
6. …Archivo XML
• Se pueden declarar propiedades que
referencien al file system.
Ej.
<?xml version=“1.0” encoding=“UTF-8”?>
<project name=“example" default="compile">
<property name="src" value="."/>
<property name="build" value="build"/>
<!– Declaración de tareas Ant - >
…..
</project>
Temas selectos de J2EE
7. Configuración de tareas Ant…
• Las tareas Ant deben estar declaradas dentro los
tags <target>
• Este tag tiene el atributo “name”, el cual es utilizado
para referenciar el conjunto de tareas.
• Ej
<target name=“compile”>
<javac
srcdir="${src}"
destdir="${src}"
includes="CurrencyBean.java" />
</target>
Temas selectos de J2EE
8. …Configuración de tareas Ant
• Opcionalmente, el tag <target> tiene un atributo llamado
“depends”, el cual indica dependencia de ejecución de las
tareas actuales con respecto a otras.
Ej
<target name="init">
<mkdir dir="${build}"/>
</target>
<target name=“compile” depends=“init”>
<javac
srcdir="${src}"
destdir="${src}"
includes="CurrencyBean.java" />
</target>
• Se puede ejecutar una tarea en especifico dentro del
archivo build.xml. Ej.
– ant init
Temas selectos de J2EE
9. Tareas Ant (Compilación)
• La tarea javac compila código fuente
– La compilación es ejecutada solo en caso que el
archivo .class sea mas viejo que el código fuente
• Ejemplo:
<javac srcdir=“src” destdir=“dist” />
<javac srcdir=“src” destdir=“dist”
excludes=“ejb/*.*”
classpath=“libraries.jar”/>
Temas selectos de J2EE
10. Tareas Ant (Ejecución)
• La tarea java ejecuta un archivo .class
especificado
• Ejemplo:
<java classname=“test.MiClase”
classpath=“libraries.jar”/>
Temas selectos de J2EE
11. Tareas Ant (JAR)
• La tarea jar empaqueta un conjunto de Archivos
• Ejemplo:
<jar jarfile=“miArchivo.jar”
basedir=“miproyecto/root”/>
Temas selectos de J2EE
12. Tareas Ant (WAR)
• La tarea war empaqueta un conjunto de Archivos dentro
de un formato WAR.
• El atributo webxml sirve para definir el archivo web.xml
• Los elementos <classes> y <lib> definen los archivos
de la aplicacion
• Ejemplo:
<war warfile=“miApp.war”
basedir=“miproyecto/root”
webxml=“miproyecto/web.xml”>
<lib dir=“miproyecto/lib”/>
<classes dir=“miproyecto/classes”/>
</war>
Temas selectos de J2EE
13. Tareas Ant (EAR)
• La tarea ear empaqueta un conjunto de
Archivos dentro de un formato EAR.
• El atributo appxml sirve para definir el
archivo application.xml
• Ejemplo:
<ear earfile=“miAppEAR.ear”
basedir=“miproyecto/root”
appxml=“miproyecto/application.x
ml” includes=“*.jar,*.war”/>
Temas selectos de J2EE
14. Ejemplo de archivo Ant (directorio)
• testFactory
– lib
•factory.properties
– manifest
•MANIFEST.MF
– src
• Código fuente de la aplicación
Temas selectos de J2EE
15. Ejemplo de archivo Ant
<project name="testFactory" default="package"
basedir=".">
<target name="init" description="Inicializa las
propiedades">
<tstamp/>
<property name="src" value="src"/>
<property name="nombre-app" value="testFactory"/>
<property name="build" value="build"/>
<property name="dist" value="dist"/>
</target>
<target name="clean" depends="init" description="Limpia
los directorios de salida">
<delete dir="${build}"/>
<delete dir="${dist}"/>
</target>
Temas selectos de J2EE
16. Ejemplo de archivo Ant
<target name="package" depends="prepare,compile">
<copy file="lib/factory.properties" todir="${build}"/>
<jar destfile="${dist}/${nombre-app}.jar" basedir="${build}"
update="yes" manifest="manifest/MANIFEST.MF"/>
</target>
<target name="prepare" depends="init" description="Prepara los
directorios de salida">
<mkdir dir="${build}"/>
<mkdir dir="${dist}"/>
</target>
<target name="compile" depends="prepare" description="Compila el codigo
fuente JAVA">
<javac destdir="${build}" debug="on" debuglevel="lines,source">
<src path="src"/>
<classpath>
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
</classpath>
</javac>
</target>
Temas selectos de J2EE
17. Ejemplo de archivo Ant
<target name="run" depends="package"
description="Ejecuta la clase principal del JAR">
<java jar="${dist}/${nombre-app}.jar"
fork="true"
failonerror="true"
>
<arg value="PERRO"/>
<sysproperty key="DEBUG" value="true"/>
<classpath>
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
</classpath>
</java>
</target>
</project>
Temas selectos de J2EE
18. Ejercicio
Consulta la guía de laboratorios para mas detalles
Temas selectos de J2EE