Artículos‎ > ‎

Aprenda Ant en 30 segundos

Qué es Ant

Si te gusta como a mi, hacer las cosas a mano, te habrás dado cuenta de que la tarea de compilar ficheros java en linea de comandos es bastante tediosa debido a los problemas con el CLASSPATH, los packages, y las librerias implicadas.

Ant nace como una excelente herramienta para automatizar todo este proceso de compilación. Además se integra perfectamente con Vim, mi editor favorito.

Ejemplo autoexplicativo

El problema con el que nos encontramos a la hora de entender y compilar nuestro primer programa con Ant es que la documentación es tan extensa que puede abrumarnos fácilmente hasta el punto que no seamos capaz de compilar un simple programa java.

Es por ello que me ha parecido interesante mostrar un ejemplo autoexplicativo del fichero build.xml con el cual podremos empezar rápidamente a compilar programas java mediante Ant.

Además así me puede servir como una plantilla que puedo tener siempre a mano.



<?xml version="1.0"?>

<!-- La accion por defecto es ejecutar -->
<project name="PlantillaAnt" default="ejecutar" basedir=".">

    <!-- Ruta del directorio con los ficheros fuente que queremos compilar (*.java) -->
    <property name="fuente" value="." />

    <!-- Ruta del directorio donde queremos que deje los ficheros compilados (*.class) -->
    <property name="destino" value="." />

    <!-- Ruta de los directorios que contengan las clases que queremos usar seprados por ; -->
    <property name="classes" value=".;d:\java\xmlproy" />

    <!-- Ruta de las librerias (.jar) que queremos usar seprados por ; -->
    <property name="lib" value="d:\javalib\informa-0.6.5\lib\jdom.jar;d:\javalib\informa-0.6.5\lib\informa.jar;d:\javalib\informa-0.6.5\lib\commons-logging.jar" />

    <!-- ===============================================  -->
    <!-- Accion compilar (comando javac) ===============  -->
    <!-- ===============================================  -->
    <target name="compilar">

        <javac srcdir="${fuente}" destdir="${destino}">
            <classpath>
                <pathelement path="${classes}"/>

                <pathelement path="${lib}"/>
            </classpath>
        </javac>
    </target>

    <!-- ===============================================  -->
    <!-- Accion ejecutar (comando java) ================  -->
    <!-- ===============================================  -->
    <target name="ejecutar" depends="compilar">

        <java classname="Main" fork="true">
            <classpath>
                <pathelement path="${classes}"/>

                <pathelement path="${lib}"/>
            </classpath>
            <!-- Descomentar si queremos pasar un argumento -->
            <!-- <arg value="primer argumento" /> !-->

        </java>
    </target>

</project>