Archivo de la etiqueta: Ant

Ant

En este tutorial está lo básico para ejecutar ANT desde eclipse; hay que hacer un archivo build.xml en donde uno quiera (el root del proyecto), poner una acción a realizar por default (se ejecutará esta y todas sus dependendicas… la acción que no esté linkeada no se ejecutará). Este es el código de ejemplo:

build.xml

<project name=”AntExample” default=”jar” basedir=”.”>

<!– El default es la operación por default, y la única
que se ejecuta si no le pasan parámetros –>

<!– Define propiedades (variables) –>

<property name=”src” value=”.”/>

<property name=”build” value=”bin”/>

<property name=”deploy” value=”deploy”/>

<!– Hace un directorio –>
<target name=”init”>
<mkdir dir=”${build}”/>
<mkdir dir=”${deploy}”/>
</target>

<!– Compila el código java a ese directorio
(¿por qué el depends? porque hay que hacer
el otro primero) –>
<target name=”compile” depends=”init”>
<!– Compile the java code –>
<javac srcdir=”${src}” destdir=”${build}”/>
</target>
<!– Peeeeero no lo exporta en un .jar, hasta acá –>
<target name=”jar” depends=”compile”
description=”create a Jar file for the application”>
<jar destfile=”${deploy}/hello.jar”>
<fileset dir=”${build}” includes=”**/*.class”/>
<manifest>
<attribute name=”Main-Class” value=”HelloProgram”/>
</manifest>
</jar>
</target>
</project>

Ant tiene bastantes mas funciones, de hecho, cuando tenemos un proyecto con dependencias, que necesite jars para funcionar u otro proyecto con el cual esté conectado, deberemos incluír esto:

<!– Used to include all the libs in a directory –>

<patternset id=”java.libs” includes=”**/*.jar,**/*.zip” />

<!– The libs compiled in the deploy folder at the time the method is called –>

<path id=”compiledLibs” >
<fileset dir=”${deploy}/${libraries}” >
<patternset refid=”java.libs” />
</fileset>
<fileset dir=”${deploy}/”>
<patternset refid=”java.libs” />
</fileset>
</path>

Y cuando compilamos, lo añadimos de esta forma:

<javac classpathref=”compiledLibs” mce_href=”compiledLibs” destdir=”${build}/banelco”>
<src path=”${banelcoGeneralHome}/src/test/java”/>
<src path=”${banelcoGeneralHome}/src/main/java”/>
</javac>

Problemas comunes: cuando tenemos proyectos con dependencias, una solución simple es hacer una carpeta deploy, meter ahí todas las librerías,
compilar allí el proyecto que no tiene dependencias de proyecto como un .jar, y después compilar
el proyecto que si tiene dependencias, que dependa de todos los .jar de ese directorio (entonces,
como el otro proyecto ya está compilado como un .jar, también tendrá sus clases )