Ant build.xml не работает должным образом

Ниже приведена упрощенная версия файла 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>

person user1145925    schedule 10.10.2013    source источник
comment
Какую команду вы используете при запуске цели? Вы используете цель jar?   -  person Java Devil    schedule 11.10.2013
comment
Работает с выпуском, часть jar не запускается. Если я запускаю с jar, то jar тоже запускается. Я хочу, чтобы jar запускался, когда я запускаю с выпуском.   -  person user1145925    schedule 11.10.2013
comment
Попробуйте запустить с ant -v для подробного вывода и посмотрите, даст ли это вам подсказку.   -  person dnault    schedule 11.10.2013
comment
Запустите команду ant -d release. Вы можете перенаправить этот вывод в файл. В начале будет показан расчет, который он выполняет для определения матрицы зависимостей. Кстати, build не должен зависеть от clean. Вы можете сделать так, чтобы release зависело от clean,jar, но вы хотите, чтобы разработчики могли выполнять сборку, не уничтожая все созданные файлы классов.   -  person David W.    schedule 11.10.2013


Ответы (1)


Обновите цель выпуска следующим образом, чтобы отметить, что выпуск зависит от сборки, а затем от jar. т.е. depend="build,jar" т.е.

    <target name="release" depends="build,jar" description="Entry point">
       <echo message="release ..."/>
    </target>
person myqyl4    schedule 11.10.2013
comment
Это не имело никакого значения. - person user1145925; 11.10.2013
comment
Это работает. Пробовал бегом. Не могли бы вы пояснить следующее. Какая версия муравья? Вы работаете в командной строке или в IDE? как вы выполняете цель запуска? Наконец, вы пытались запустить ant -v для вывода подробного вывода? Можете ли вы опубликовать вывод для обзора? Эти детали могут лучше помочь диагностировать вашу проблему, но ваш файл ant в порядке? Это какая-то другая проблема. Кроме того, перед запуском вы можете выполнить очистку отдельно и убедиться, что старая сборка удалена, прежде чем запускать какие-либо другие цели. - person myqyl4; 11.10.2013