Acerca de
Curriculum Vitae
Blog
Artículos


Tutorial de Ant - Hola mundo! Desde Ant
Introducción


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:

Instalación de Ant y Configuración de Variables de Entorno


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
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:

Variables de Entorno
Configuración de Variables de Entorno


Seleccionar la pestaña "Advanced" y el botón "Environment Variables"

Variables de Entorno
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.

Variables de Entorno
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;

Variables de Entorno
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
Descarga y Ejecución del ejemplo

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.
¿ Que es Ant?

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:

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.

¿Que hace el ejemplo?

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:

Arbol 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.



14 Comentario(s)
David-2008-04-10 14:18:51
la verdad gracias por el tutorial fue de mucha ayuda

robextrem-2008-06-28 16:48:20
Muy buen tutorial!
Gracias!

firehook-2008-07-25 16:06:49
muy buen tutorial, me sirvio muchisimo

Esqui-2008-09-02 04:24:37
Esta Super este tutorial, muchas gracias.

Sabes de donde puedo descargar mas informacion, sobre todo cuando se manejan frameworks como Hibernate y Spring, para saber como unirlo todo?


Peter-2008-09-16 11:36:06
Hola,

el tutorial está muy bien, pero intenté seguir los pasos tal cual y al final me da este error:

C:antTutorial>ant runjar Buildfile: build.xml
Buildfile: build.xml

build:
[mkdir] Created dir: C:antTutorialclasses
[javac] Compiling 2 source files to C:antTutorialclasses

genjar:
[jar] Building jar: C:antTutorialdistantTest.jar

BUILD FAILED
C:antTutorialuild.xml:51: Problem creating jar: C:antTutorialdistantTest.j
ar (El sistema no puede hallar la ruta especificada) (and the archive is probabl
y corrupt but I could not delete it)

Total time: 3 seconds

Podrían decirme el por qué?

Gracias

leonz-2008-09-25 20:03:06
Muchas gracias, espectacular..... . :)

Torchman-2008-10-22 08:41:59
Muchas gracias. Es un muy buen ejemplo para empezar a trastear con ANT.

Por cierto PETER: Create en tu ruta de directoriso o mejor añade en el tarjet build: .

Bye

edo-2009-08-11 13:10:07
en el build grega esta linea

asi te creara la carpeta dist y compilara de inmediato

-2009-09-17 15:12:13


Victor Campanera-2009-11-05 06:53:17
Muchas gracias por el tutorial!! Para iniciarse en Ant viene muy bien.
Es fantastico

njr2mx-2010-02-04 14:48:52
gracias, por el tuto

Ricardo-2010-05-03 17:11:41
Si quiero correr no una sola clase, sino mas bien un paquete completo de clases que debo poner en
#
#
#
#

#
Ricardo-2010-05-03 17:52:54






nenopera-2010-06-10 23:24:31
El tutorial es conciso y directo. Felicidades.

Pero que hay de :
<<
Verificar que archivos de codigo fuente han cambiado y si hay archivos que dependen de ellos
>>

Esa parte sería interesantisima. Si averiguo algo lo postearé.


Agregar Comentarios:
Nombre/Alias:
Email:
Url:
Comentarios:
Escribe las palabras (es para evitar spam):
© Copyright Mario Alberto Ramirez, todos los derechos reservados