El siguiente proyecto de Ant compila diversas clases Java y las coloca en un archivo JAR; este ejemplo solo demuestra las funcionalidades básicas de Ant, se recomienda leer la documentación completa para conocer el alcance completo de Ant.
<?xml version="1.0"?> <project default="init" basedir="."> <target name="init"> <tstamp/> <property name="nombre" value="Definiciones para Tareas"/> <echo message="----------- ${nombre} --------"/> <property name="debug" value="on"/> <property name="optimize" value="off"/> <property name="deprecation" value="off"/> <property name="build.compiler" value="classic"/> <property name="target.vm" value="1.3"/> <path id="classpath"> <fileset dir="./lib"> <include name="*.jar"/> </fileset> </path> </target> <target name="compilar" depends="init"> <echo message="------ Compilando Clases ------"/> <mkdir dir="clasescompiladas"/> <javac srcdir="./clases" destdir="./clasescompiladas" debug="${debug}" optimize="${optimize}" deprecation="${deprecation}" target="${target.vm}"> <classpath refid="classpath"/> </javac> </target> <target name="jar" depends="compilar"> <echo message="------ Generando Archivo JAR ------"/> <jar jarfile="lasclases.jar" basedir="./clasescompiladas" includes="**"/> </target> <target name="limpiar" depends="compilar" > <delete file="lasclases.jar"/> </target> </project> |
init
Esta primer tarea siempre es realizada al ejecutarse ant
y define diversos parámetros que son empleados a lo largo del resto de las tareas; dichos parámetros son definidos en el elemento <property>
el cual a su vez requiere dos atributos: name
que indica el nombre del parámetro/propiedad y value
que indica su respectivo valor, para hacer uso de estos parámetros dentro del archivo build.xml
se utiliza la siguiente nomenclatura: ${nombre}
, donde nombre
es el valor asignado en el atributo name
.
Al ejecutar esta tarea ("Target") se genera el siguiente despliegue:
bash-2.05$ ant Buildfile: build.xml init: [echo] ------------ Definiciones para Tareas --------- BUILD SUCCESSFUL Total time: 3 seconds |
compilar
La tarea ("target") compilar
compila las clases Java localizadas en el directorio clases
y coloca los archivos compilados en el directorio clasescompiladas
; esta misma tarea genera el directorio clasescompiladas
antes de iniciarse la tarea.
Al ejecutar esta tarea ("Target") se genera el siguiente despliegue:
bash-2.05$ ant compilar Buildfile: build.xml init: [echo] ------------ Definiciones para Tareas -------- compilar: [echo] ------- Compilando Clases -------- [mkdir] Created dir: /tmp/antprac/clasescompiladas [javac] Compiling 5 source file to /tmp/antprac/clasescompiladas BUILD SUCCESSFUL Total time: 5 seconds |
jar
La tarea ("target") jar
genera un archivo jar con todas las clases presentes en el directorio clasescompiladas
, nótese que esta tarea depende del "target" compilar
esto garantiza que efectivamente existan clases compiladas en este directorio antes de intentarse generar el archivo jar.
Al ejecutar esta tarea ("Target") se genera el siguiente despliegue:
bash-2.05$ ant jar Buildfile: build.xml init: [echo] ---- Definiciones para Tareas ------ compilar: [echo] ------ Compilando Clases ------- [javac] Compiling 5 source file to /tmp/antprac/clasescompiladas jar: [echo] ------ Generando Archivo JAR ------- [jar] Building jar: /tmp/antprac/lasclases.jar BUILD SUCCESSFUL Total time: 6 seconds |
limpiar
Finalmente la tarea limpiar
es utilizada con fines administrativos para eliminar el archivo jar creado por Ant; solo con la intención de evitar errores esta tarea se define dependiendo del "target" compilar
para que exista un archivo jar a ser eliminado.
Al ejecutar esta tarea ("Target") se genera el siguiente despliegue:
bash-2.05$ ant limpiar Buildfile: build.xml init: [echo] ------------------- Definciones para Tareas ---------------- compilar: [echo] -------------- Compilando Clases -------------- [javac] Compiling 5 source file to /tmp/antprac/clasescompiladas limpiar: [delete] Deleting: /tmp/antprac/lasclases.jar BUILD SUCCESSFUL Total time: 8 seconds |