2013-10-10 4 views
0

Ниже приведен упрощенный вариант build.xml для Java-проекта. Он корректно завершает «сборку» (создает правильные файлы .class) и печатает «Finishing build». Однако он не распечатывает «Начальную банку». Что я не понимаю? Целевая «jar» зависит от «сборки», поэтому ее следует запустить дальше.Ant build.xml не работает должным образом

Запуск с целевым выпуском.

<?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> 
+1

Что команда используется при выполнении цели? Вы используете цель банки? –

+0

Запуск с выпуском, часть банки не запускается. Если я запускаю w/jar, то также запускается jar. Я хочу, чтобы jar запускался при запуске с выпуском. – user1145925

+0

Попробуйте запустить «ant -v» для подробного вывода и посмотреть, дает ли это вам ключ. – dnault

ответ

0

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

<target name="release" depends="build,jar" description="Entry point"> 
     <echo message="release ..."/> 
    </target> 
+0

Это не имело никакого значения. – user1145925

+0

Это работает. Пробовал это побежал. Можете ли вы пояснить следующее. Какая версия муравья? Вы работаете в командной строке или в среде IDE? как вы выполняете цель запуска? Наконец, вы попробовали работать с ant -v для печати подробного вывода? Можете ли вы опубликовать результаты для обзора? Эти детали могут помочь лучше диагностировать вашу проблему, но ваш файл ant в порядке? Это еще одна проблема. Кроме того, перед запуском вы можете запустить очистку отдельно и проверить, что старая сборка удалена, прежде чем запускать какие-либо другие цели – myqyl4

Смежные вопросы