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»> <target name=»compila» depends=»creadir»> <target name=»comprime» depends=»compila»> </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»> <target name=»compila» depends=»creadir»> <target name=»comprime» depends=»compila»> |
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 ….