Introducción a ANT

0
46088

Introducción a ANT

Ant es una herramienta que nos ayuda a compilar, empaquetar y distribuir
soluciones de Software.

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

Dejar respuesta

Please enter your comment!
Please enter your name here