Ниже приведена упрощенная версия файла build.xml для проекта Java. Он правильно завершает «сборку» (создает правильные файлы .class) и распечатывает «Завершение сборки». Однако он не распечатывает «Начальную банку». Что я не понимаю? Целевой «jar» зависит от «build», поэтому его следует запустить следующим.
Запуск с целевым релизом.
<?xml version="1.0"?>
<project name="Project" basedir="." default="release">
<!-- directories -->
<property name="src.dir" location="src/main/java"/>
<property name="cls.dir" location="private/classes"/>
<property name="lib.dir" location="lib"/>
<property name="jar.name" value="${ant.project.name}-${jar.ver}.jar"/>
<target name="clean" description="Delete all generated files">
<delete dir="${cls.dir}"/>
<delete dir="${lib.dir}"/>
</target>
<target name="build" depends="clean">
<mkdir dir="${cls.dir}"/>
<javac
destdir="${cls.dir}"
nowarn="off"
fork="yes"
debug="on">
<classpath>
<path path="${run.classpath}"/>
</classpath>
<src path="${src.dir}"/>
</javac>
<echo message="Finishing build"/>
</target>
<target name="jar" depends="build">
<echo message="Starting jar"/>
<mkdir dir="${lib.dir}"/>
<jar destfile="${lib.dir}/${jar.name}">
<fileset dir="${cls.dir}"/>
<fileset dir="${src.dir}" includes="**/*.properties"/>
<fileset dir="${src.dir}" includes="**/*.xml"/>
</jar>
</target>
<target name="release" depends="jar" description="Entry point">
</target>
</project>
ant -d release
. Вы можете перенаправить этот вывод в файл. В начале будет показан расчет, который он выполняет для определения матрицы зависимостей. Кстати,build
не должен зависеть отclean
. Вы можете сделать так, чтобыrelease
зависело отclean,jar
, но вы хотите, чтобы разработчики могли выполнять сборку, не уничтожая все созданные файлы классов. - person David W.   schedule 11.10.2013