<?xml version="1.0"?>
<!-- NOTA: Asegúrate de que el fichero lo editas en utf-8 -->
<!-- NOTA: conviene hacer clean y luego compilar -->
<!-- Para generar: ant [tarea] o ant -buildfile [fichero.xml] [tarea] -->
<project name="build.xml de ejemplo" default="pasartest" basedir=".">

    <property name="dir.src" value="src"/>
    <property name="dir.build" value="build"/>
    <property name="dir.dist" value="dist"/>

    <!-- Genera los directorios de salida: ant preparar -->
    <target name="preparar" description="Crea los directorios">
        <mkdir dir="${dir.build}"/>
        <mkdir dir="${dir.dist}"/>
    </target>

    <!-- Elimina todo lo creado: ant clean -->
    <target name="clean" description="Elimina todos los ficheros generados">
        <delete dir="${dir.build}"/>
        <delete dir="${dir.dist}"/>
    </target>

    <!-- Compilación, primero hace la tarea preparar: ant compilar -->
    <target name="compilar" depends="preparar" description="Compilar todo.">
        <javac srcdir="${dir.src}" destdir="${dir.build}"/>
    </target>
    
    <!-- Establece el classpath -->
    <path id="classpath.proyecto">
        <pathelement path="${dir.build}"/>
    </path>

    <!-- Ejecuta los test unitarios -->
    <target name="pasartest" depends="compilar" description="Ejecutar test junit">
        <junit printsummary="on"
            fork="false"
            haltonfailure="false"
            failureproperty="tests.failed"
            showoutput="true">

            <classpath refid="classpath.proyecto"/>
            <formatter type="brief" usefile="false"/>
            
            <batchtest>
                <fileset dir="${dir.src}">
                    <include name="**/Test*.java"/>
                </fileset>
            </batchtest>
        </junit>
    
        <fail if="tests.failed">
                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                ATENCIÓN. HAN CASCADO ALGUNOS TESTS.
                ECHA UN OJO A LOS RESULTADOS.
                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        </fail>
    </target>

    <!-- Genera un fichero jar, depende de la tarea compile: ant jar -->
    <target name="jar" depends="compilar" description="Genera un fichero jar en el directorio 'dist'.">
        <jar jarfile="${dir.dist}/proyecto.jar" basedir="${dir.build}"/>
    </target>
    
</project>