Este artículo es un tutorial mas de Ant, la herramienta para construcción (build tool) de programas escrita en Java.
El enfoque de este tutorial es práctico, instala lo necesario en tu equipo para correr el ejemplo, descargalo, ejecutalo y despues regresa a entender que es lo que hace el ejemplo.
No olvides dejar comentarios y/o sugerencias en la sección de comentarios.
Requisitos: Los únicos prerequisitos previos para entender y ejecutar el ejemplo son:
- Nociones Basicas de Java
- Tener instalado el JDK 1.4+
Primero que nada, descarga Ant desde el sitio oficial (En el sitio ir a Download->Binary Distributions), yo personalmente lo estoy probando con la versióon 1.7 pero tambien se pueden utilizar versiones anteriores.
La instalación del ant consiste unicamente en descomprimir el archivo zip, gz, o bz2, dependiendo del que se haya elejido al descargar el ant. Al terminar de descomprimir el archivo deberís de tener un directorio como el siguiente:
 Estructura de directorios Ant
|
Una vez descomprimida la estructura de directorios a una carpeta, hay que asegurarnos que la carpeta bin este disponible en el PATH, es decir, hay que agregarla a las variables de entorno.
En windows, ir a MyComputer o MiPc y hacer click con el botón derecho y seleccionar propiedades:
 Configuración de Variables de Entorno
|
Seleccionar la pestaña "Advanced" y el botón "Environment Variables"
 Configuración de Variables de Entorno
|
En la sección System Variables, seleccionar la variable PATH y presionar el botón Editar ( en caso de que no existe esa variable presionar el botón New.
 Configuración de Variables de Entorno
|
Por último agregar al valor de la variable, la ruta completa de la carpeta bin de donde esta instalado el ant. En este caso: d:\mario\java\apache-ant-1.7.0\bin;
 Configuración de Variables de Entorno
|
ANT_HOME
JAVA_HOME
Para verificar que las variables de entorno estan configuradoas correctamente , desde una ventana de MS-DOS ejecutar el siguiente comando:
d:\>antTutorial>ant -version
Si se despliega la información de la versión :
D:\mario\desarrollo\antTutorial>ant -version
Apache Ant version 1.7.0 compiled on December 13 2006
la configuracioacute;n se llevo a cabo correctamente
Ahora descarga el ejemplo y descomprimelo en tu disco duro, desde una ventana de ms-dos, cambia de directorio hacia la ruta donde hayas descompimido el ejemplo, y ejecuta el comando: ant
D:\cd antTutorial
D:\antTutorial>ant
Si configuraste correctamente las variables de entorno debes de ver la siguiente salida:
D:\antTutorial>ant
Buildfile: build.xml
uso:
[echo] Archivo build de TutorialAnt
[echo] -----------------------------------
[echo] Las opciones disponibles son:
[echo] build -->Hacer un build de la aplicacion
[echo] run --> Ejecutar la aplicacion
[echo] genjar --> Generar el Jar
[echo] runjar --> Ejecutar la aplicacion desde el jar generado
BUILD SUCCESSFUL
Total time: 1 second
A continuación ejecuta ant runjar, debes de ver la siguiente salida:
D:\antTutorial>ant runjar
Buildfile: build.xml
build:
[javac] Compiling 2 source files to D:\mario\desarrollo\antTutorial\classes
genjar:
[jar] Building jar: D:\mario\desarrollo\antTutorial\dist\antTest.jar
runjar:
[java] Hola Mundo
BUILD SUCCESSFUL
Total time: 4 seconds
Si es asi ...felicidades! acabas de compilar dos clases de java, empaquetarlas en un jar y ejecutarlas desde el mismo jar en una sola linea.
Es una herramienta de generación o automatización de codigo (build tool) escrita en Java.
Una herramienta de generación de código o Build Tool es una utileria de programación, que se usa cada vez que se desea generar una nueva versión de un programa de forma automatizada.
En la generación de una nueva versión de un programa, generalmente se tienen que hacer los siguientes pasos:
- Verificar que archivos de codigo fuente han cambiado y si hay archivos que dependen de ellos
- Verificar que las librearias a utilizar esten la dirección correcta
- Generar un archivo binario ejecutable
- Alternativamente en Java se pueden empaquetar las clases que componen el programa en archivos Jars
Ant es una herramienta escrita en Java que automatiza todos los pasos anteriores y muchas otras tareas relativas al ciclo de desarrollo de una applicación: generación de archivos binarios,pruebas , deployment, etc.
¿Y como hace todo eso?
Ant en realidad es un programa cuya función es "orquestar" todo el proceso de generación de código. En lugar de escribir instrucciones a manera de scripts,lo que se hace, es indicarle "tareas" (Ant Tasks) a realizar sobre un proyecto, a traves de un archivo XML (build.xml).
El archivo se guarda generalmente en el directorio raiz del proyecto y una vez que ejecutamos el comando Ant, el programa busca automaticamente el archivo build.xml para leer las "tareas" que se le indican y llevarlas a cabo.
Veamos paso a paso lo que hace el ejemplo, supongamos que queremos hacer el clásico programa Hola Mundo de Java, el cual consiste de dos clases:
HolaMundo.java
package com.marioalberto.tutorial.ant;
public class HolaMundo {
public String obtenerMensaje() {
MessageProvider msg=new MessageProvider();
return msg.getMessage();
}
public static void main(String args[]) {
HolaMundo test = new HolaMundo();
System.out.println(test.obtenerMensaje());
}
}
MessageProvider.java
package com.marioalberto.tutorial.ant;
public class MessageProvider {
public String getMessage() {
return "Hola Mundo";
}
}
como podemos observar las clases son parte del paquete com.marioalberto.tutorial.ant, apegandonos a las mejores practicas, utilizamos la siguiente estructura de directorios:
 Estructura estandar de proyectos Java
|
El directorio src, es donde almacenaremos los archivos fuente, los cuales, por sert parte del paquete com.marioalberto.tutorial.ant deberan de almacenarse en la ruta com\marioalberto\tutorial\ant
El directorio classes almacenara los archivos .class compilados
El directorio dist, alamacenara el jar con todos los archivos .class y lo necesario para ejecutar la aplicación desde el mismo jar.
La forma tradicional de hacer el ejecutable implicaria compilar los archivos fuentes
desde la línea de comandos, uno por uno, especificando en el classpath
las rutas de las librerias.
Con Apache Ant, lo que tenemos que hacer es configurar el archivo build.xml
Los archivos builds son archivos XML, cada archivo contiene un proyecto y al menos un target (target default) . Los targets a su vez contienen task (tareas), los cuales son fragmentos de codigo que se pueden ejecutar para llevar a cabo una tarea en particular.
De esta forma nuestro archivo build basico es:
el cual al ser interpretado/ejecutado por el ant (sin ningun parametro ) se detecta que el target por defecto es "uso" (como se puede observar en la línea 1) y mostrará las opciones que pueden ser invocadas.
Ahora agregamos el target para construir el proyecto, en este caso lo que queremos es asegurarnos que exista un directorio "classes", compilar los archivos fuentes y mandarlos a ese directorio.
para lo cual utilizamos los task's mkdir y javac.
Nuestro nuevo target se llama "build", el cual nuevamente puede ser invocado desde la linea de comando con la sig. instrucion:
d\:> ant build
A continuación necesitamos ejecutar el programa, usaremos el task "java" y lo agregaremos al target "run" en nuestro archivo build.xml
Ahora supongamos que queremos distrubuir nuestro programa empaquetado en un jar, ant nos permite empaquetar las classes necesarias en un archivo jar generando el archivo MANIFEST.
Crearemos un nuevo target "genjar" y le agregaremos un task de generación
de archivos jar:
Por ultimo si queremos ejecutar el programa directamente desde el jar, utilizamos el siguiente target:
En este artículo hemos cubierto cuatro targets: build,run,genjar y runjar,
pero ant permite automatizar muchas mas tareas, por ejemplo:comprimir y descomprimir
un archivo zip, ejecutar comandos de SQL en una Base de datos mediante JDBC, enviar
archivos via FTP, enviar correos via SMTP.
Con estas tareas puedes crear tus propios targets para automatizar tus propios desarrollos.
© Copyright Mario Alberto Ramirez,
todos los derechos reservados