Creador y propietario de AdictosAlTrabajo.com, Director General de Autentia S.L., Ingeniero Técnico de Telecomunicaciones y Executive MBA por el Instituto de Empresa 2007. Twitter: @rcanalesmora
Autor del Libro: Informática profesional, las reglas no escritas para triunfar en la empresa
Puedes consultar mi CV y alguna de mis primeras aplicaciones (de los 90) aquí
Regístrate para votar
Introducción a ANT
Ant es una herramienta que nos ayuda a compilar, empaquetar y distribuir soluciones de Software.
Antes de empezar, descargarse el sistema ANT
Una vez descomprimido, hay que asegurarse de que las variables de entorno necesarias están correctamente establecidas en el sistema.
ANT_HOME=c:\ant JAVA_HOME=c:\jdk1.x.x PATH=%PATH%;%ANT_HOME%\bin
Ant ejecuta un guión, un fichero llamado build.xml donde se definen las actividades a ejecutar.
Ejemplo de fichero:
| <?xml version="1.0" encoding="ISO-8859-1" ?> <project name="inicial" default="comprime"> <target name="creadir"> <mkdir dir="destino" /> <mkdir dir="jars" /> </target> <target name="compila" depends="creadir"> <javac srcdir="." destdir="destino" /> </target> <target name="comprime" depends="compila"> <jar jarfile="jars/resultado.jar" basedir="destino" /> </target> </project> |
En este ejemplo vemos que tenemos un proyectos que por defecto tiene que ejecutar las acción comprime.
Como se puede observar, cada juego de acciones (target) puede declarar que depende (depends) de la ejecución de otros juegos de acciones. ANT, se asegurará de generar un árbol de dependencias y ejecutarlas en el orden adecuado para que el trabajo se complete.
Cada juego de acciones o target, incluye unos comandos, con sus parámetros:
- <mkdir dir="destino" /> Crea el directorio "destino"
- <javac srcdir="." destdir="destino" /> Compila todos los ficheros en el directorio actual y guarda los objetos en el directorio "destino"
- <jar jarfile="jars/resultado.jar" basedir="destino" /> Genera un
fichero jar con todo lo que hay en el directorio "destino"
Podemos comprobar el resultado de la ejecución

Si vamos a la documentación de ant, podemos observar los distintos comandos que posees. También existen extensiones de tal modo que fabricantes de software (o tu mismo) pueden extender los actuales.
|
Vamos a comentar algunos comando que son sencillo y muy útiles:
Echo: Nos ayuda a poner mensajes en nuestras secuencias
| <target name="creadir"> <echo>Creamos los directorios</echo> <mkdir dir="destino" /> <mkdir dir="jars" /> </target> |
Es posible que nos interese introducir dentro de nuestro script otras secuencias y a través de las líneas de comando, decidir a cual invocamos. Un caso podría ser, crear un target, para borrar todo lo construido e invocarlo solo cuando nos interese.
| <?xml version="1.0" encoding="ISO-8859-1" ?> <project name="inicial" default="comprime"> <target name="creadir"> <echo>Creamos los directorios</echo> <mkdir dir="destino" /> <mkdir dir="jars" /> </target> <target name="compila" depends="creadir"> <javac srcdir="." destdir="destino" /> </target> <target name="comprime" depends="compila"> <jar jarfile="jars/resultado.jar" basedir="destino" /> </target> <target name="borradir"> <delete dir="destino" /> </target> </project> |
Si desde la línea de comando, ejecutamos "ant borradir", obtendremos el resultado deseado

Normalmente, se trabaja con propiedades (al estilo de variables) para que no nuestros scripts sean los más flexibles y reutilizables
| <target name="init"> <property name="directorios.clases" value="destino" /> </target> <target name="creadir" depends="init"> |
También podemos recoger los parámetros de invocación de linea de comando, las variables de entorno o variables en ficheros de propiedades o programas Java .... pero eso lo dejamos para otros capítulos ....
Puedes opinar o comentar cualquier sugerencia que quieras comunicarnos sobre este tutorial; con tu ayuda, podemos ofrecerte un mejor servicio.
Comentarios
-
Jaime2009-04-16 - 09:43:41 AMMuchas gracias por el tutorial. Como siempre. muy agradecido de esta página. ¡Espero poder currar algún día con vosotros!








