Ant - Dr. Humberto Cervantes

Anuncio
Introducción a Java (4) : Ant
Humberto Cervantes Maceda
Alfonso Martínez Martínez
1
Abril 2005
Ant
Ant es una herramienta extensible que permite
automatizar el proceso de ensamblado
Ensamblado = construcción y despliegue
Similar a make
Ant se va a ocupar de
Compilación
Generación de documentación
Empaquetamiento
Ejecución
etc...
2
Por qué usar Ant ?
Compilar en línea de comando es tedioso
Dificil de repetir
No portable
Depender de un entorno de desarrollo para
compilar no es práctico
Que tál si a mi me gusta Eclipse y a otra persona
NetBeans?
Ant remedia ambos problemas
3
Conceptos básicos
Ant funciona a partir de un script de ensamblado
en formato XML (típicamente build.xml)
Definido en termino de proyecto, targets y tasks
Proyecto (uno sólo por archivo)
Contiene un conjunto de targets
Target
Tiene un nombre y dependencias hacia otros targets
Contiene un conjunto de tasks
Tasks
Operaciones básicas (javac, java, jar, etc...)
4
Conceptos básicos (2)
Propiedades
Globales (nombre y valor)
<property name="output.dir" value="."/>
Una vez definidas, son referenciables en otras partes
del script
${output.dir}
Las propiedades permiten escribir scripts
“genericos”
Solo hay que cambiar el valor de las propiedades
para usarlo en distintos proyectos
5
Targets clásicos
No hay un estándar para los targets de Ant, pero
en general se usan los siguientes
init – inicializa propiedades
prepare – crea directorios de salida
clean – borra directorios de salida
compile – compila
run – ejecuta
package – empaqueta (binarios o fuentes)
javadoc – genera documentación
Dependencias son muy importantes
6
prepare depende de init
todos dependen al menos de prepare
run depende de compile
etc...
Tasks
Existen distintas tareas definidas en Ant
java
javac
jar
javadoc
copy
mkdir
etc... (ver ant.apache.org)
Ant es extensible, nuevas tareas pueden ser
incluidas
7
Ejemplo
<project name="Vehiculos" default="all">
<!-- Set up output dir if not set externally -->
<target name="setProps" unless="setProps" description="set up
properties">
<property name="dist.dir" value="dist" />
<property name="mainclass.name"
value="mx.uam.vehiculos.Principal"/>
</target>
<!-- Initialize properties -->
<target name="init" depends="setProps">
<property name="debug.flag" value="on"/>
<property name="output.dir" value="."/>
<property name="build.dir" value="build"/>
<property name="src.dir" value="src"/>
<property name="lib.dir" value="lib"/>
<property name="resource.dir" value="res"/>
<property name="doc.dir" value="docs"/>
<property name="javadoc.dir" value="${doc.dir}/javadoc"/>
</target>
8
Ejemplo
Compilación
<!-- Compile -->
<target name="compile" depends="prepare">
<javac srcdir="${src.dir}" destdir="${output.dir}"
debug="${debug.flag}" verbose="no" deprecation="no">
<classpath>
<pathelement location="${output.dir}"/>
<fileset dir="${lib.dir}">
<include name="*.jar"/>
</fileset>
</classpath>
<include name="**/*.java"/>
</javac>
</target>
Invocación de ant desde consola
ant [-f build.xml] [target]
9
Integración con Eclipse
10
Síntesis
La herramienta Ant sirve para automatizar las
tareas de construcción
Permite describir todo el proceso de construcción en
un archivo en formato xml
Es una herramienta muy útil para liberar
proyectos y permitir que sean ensamblados
facilmente por terceros
Se integra perfectamente con Eclipse
Vale la pena usarlo siempre!
11
Descargar