Algoritmos y Programación III Ant Materia 75.07 Depto. Computación - FIUBA
Temario Ant Instalación y ejecución build.xml project, target, task extensiones, property Recursos
Ant Herramienta para automatización de tareas Desarrollado en Java Independiente de plataforma Objetivos similares al ‘Make’ de Unix Archivo de configuración en xml Estándar de hecho para distribución de aplicaciones Java
Ant Ant traduce las instrucciones del archivo xml a instrucciones del sistema operativo Herramienta libre http://ant.apache.org/ Posibilidad de extensión
Instalación Descargar la distribución de Ant específica para el sistema operativo: http://ant.apache.org/bindownload.cgi Configurar la variable de entorno ANT_HOME a donde está instalado el Ant Incluir $ANT_HOME/bin en el PATH Asegurarse que JAVA_HOME está configurado para apuntar al JDK
Ejecutar Ant Escribir “ant” en la línea de comando Automáticamente busca un archivo build.xml en el directorio actual Escribir “ant –buildfile otrobuildfile.xml” para especificar otro archivo xml
Ejemplo de build.xml <project name="ProyectoAnt" default="dist" basedir="."> <property name="src" location="miniBanco" /> <property name="src2" location="pruebaBanco" /> <property name="build" location="buildfolder" /> <property name="dist" location="dist" /> <target name="init"> <mkdir dir="${build}" /> </target> <target name="compilar" depends="init"> <javac srcdir="${src}" destdir="${build}" /> <javac srcdir="${src2}" destdir="${build}" classpath="junit.jar" /> <target name="dist" depends="compilar"> <mkdir dir="${dist}/lib" /> <jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}" /> <target name="limpiar"> <delete dir="${build}" /> <delete dir="${dist}" /> </project>
project Cada build.xml contiene un solo tag project Especifica los atributos básicos del proyecto, con 3 atributos: Nombre (name) Target por omisión (default) Directorio base (basedir) Ejemplo: ”<project name="ProyectoAnt" default="dist" basedir=".">”
target El target es un módulo de Ant Cada target contiene una o varias tareas para que ejecute Ant Alguna debe ser definida como que se ejecuta por omisión. Estructura: <target name="A"/> <target name="B" depends="A"/> <target name="C" depends="B"/> <target name="D" depends="C,B,A"/>
task Cada target consiste en una o mas tareas (task) Una tarea (task) es código Java ejecutable (javac, jar, java, etc) Existen tareas que forman parte del ‘core’ de Ant y se pueden programar tareas propias
task (ejemplos) javac – ejecuta el compilador Java java – ejecuta la JVM jar (and war) – crea archivos JAR mkdir – crea un directorio copy – copia archivos a un destino delete – borra archivos cvs – invoca comandos de CVS
Extensiones Crear una clase Java que extienda org.apache.tools.ant.Task Para cada atributo, escribir un método set y que reciba un único parámetro Escibir un método public void execute() sin parámetros, que lance BuildException, éste es el método que implementa la tarea (task)
property Tarea que especifica propiedades de archivo build Ejemplo: <property name=“src” value=“/proyecto/src”/> Luego puede usarse ${src} en cualquier parte del archivo para significar /proyecto/src Se provee acceso a las propiedades del sistema como si estuviesen definidas por un <property>
Línea de comando -buildfile archivo – especifica el archivo xml a usar -targetname – especifica el ‘target’ a utilizar (en lugar del target por defecto) -verbose, -quiet, -debug – permite controlar la salida de Ant a la consola
Recursos Website http://ant.apache.org Integrado a Eclipse