Estás en:

informaciónDESARROLLADO POR:
icono_twiter icono_linkedin icono_linkedin icono_xing

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í

Fecha de publicación del tutorial: 2003-06-14
Tutorial visitado 30.491 veces30.491
Descargar el tutorial en PDF


Regístrate para votar
Share |

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.

AntFilter Style Deltree
Replace Copy Parallel
AntCall Java Untar
FixCRLF Tar Dependset
Rmic Copydir Patch
AntStructure Javac Unwar
GenKey Taskdef Ear
Sequential Copyfile PathConvert
Apply/ExecOn Javadoc/Javadoc2 Unzip
Get Touch Echo
SignJar Cvs Property
Available Mail Uptodate
GUnzip TStamp Exec
Sleep CVSPass Record
Chmod Mkdir War
GZip Typedef Fail
Sql Delete Rename
Condition Move Zip
Jar Unjar

 

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">
    <echo>Creamos los directorios</echo>
    <mkdir dir="${directorios.clases}" />
    <mkdir dir="jars" />
</target>

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

 

Sobre el Autor ..

Anímate y coméntanos lo que pienses sobre este TUTORIAL:

Puedes opinar o comentar cualquier sugerencia que quieras comunicarnos sobre este tutorial; con tu ayuda, podemos ofrecerte un mejor servicio.


(Sólo para usuarios registrados)

» Registrate y accede a esta y otras ventajas «

Comentarios

  1. Jaime
    2009-04-16 - 09:43:41 AM

    Muchas gracias por el tutorial. Como siempre. muy agradecido de esta página. ¡Espero poder currar algún día con vosotros!