Ant build не генерирует файлы классов

#java #ant

#java #ant

Вопрос:

Я использую build.xml для сборки моего src. Однако ему не удалось сгенерировать файлы классов без какого-либо сообщения об ошибке. Полный скрипт

 <?xml version="1.0"?>

<project name="auxiliary" basedir="." default="dist">

<property name="src.dir" value="../auxiliary-src/com/nextbio/drugbank"/>
<property name="dist.dir" value="dist"/>
<property name="lib.dir" value="../jboss_config/common_app_jars"/>
<property name="temp.dir" value="temp"/>
<property name="foo_dist.dir" value="../foo/dist"/>

<path id="libs-classpath">
    <fileset dir="${foo_dist.dir}">
            <include name="foo.jar"/>
    </fileset>  

</path> 
<target name="dist" depends="auxiliary-dist" />


<target name="auxiliary-cleanup">
        <delete dir="${temp.dir}"/>
        <delete dir="${dist.dir}"/>
        <echo message="cleaned up. ${temp.dir}, and ${dist.dir} have been deleted."/>
</target>

<target name ="auxiliary-dist">

    <delete dir="${temp.dir}"/>
    <echo message="delete ${temp.dir}" />
        <mkdir dir="${temp.dir}"/>

    <javac destdir="${temp.dir}" source="1.6" target="1.6" debug="on" fork="true" memorymaximumsize="1024m">
        <src path="${src.dir}"/>
        <classpath>
            <path refid="libs-classpath"/>          
        </classpath>
        <include name="com/car/**"/> <!-- troubled line -->

    </javac>
    <!--<copy overwrite="true" todir="${temp.dir}">
        <fileset dir="${src.dir}">
            <exclude name="**/*.java"/>
            <exclude name="**/*.sql"/>
            <exclude name="**/*.txt"/>
        </fileset>
    </copy> 
     <delete dir="${dist.dir}"/>
     <mkdir dir="${dist.dir}"/>
     <jar destfile="${dist.dir}/auxiliary.jar" basedir="${temp.dir}"/> -->

</target>
  

После этого шага в $ {temp.dir} нет файла класса и нет сообщения об ошибке. Я дважды проверил это и обнаружил, что это из-за «проблемной строки». Я попытался добавить некоторые файлы в classpath. Я не знаю, почему это неправильно.

Комментарии:

1. вы пытались определить путь src в теге javac?

2. Можете ли вы опубликовать выходные данные ant? Кроме того, можете ли вы опубликовать полный build.xml ? Это поможет устранить проблему. Приветствия.

3. запустите его с помощью ant -v, чтобы получить больше отладочной информации. Возможно, temp.dir или src.dir не определены или не содержат значения, которое, по вашему мнению, они имеют.

Ответ №1:

Путь к источнику должен указывать на корень дерева пакетов. Вы заставляете его указывать на определенный пакет внутри исходных текстов : ../auxiliary-src/com/nextbio/drugbank .

И в задаче javac вы просите его скомпилировать все файлы, соответствующие шаблону com/car/** . Это означает, что он скомпилирует исходные файлы Java в ../auxiliary-src/com/nextbio/drugbank/com/car или в подкаталоге. Если это так, у вас очень нетрадиционные имена пакетов.

Ответ №2:

У меня была та же проблема.

Мой проект был завершен хорошо, но классов там нигде не было, и у него не было никакого сообщения об ошибке.

Моей проблемой был путь к классу. Мастер eclipse добавил jar-файлы EclipseLink 2.5.1. Я удалил его, и проблема исчезла.

Я предлагаю создать простой HelloWord и удалить все ссылки на jar из classpath и повторить попытку.

Ответ №3:

Я столкнулся с проблемой «ant, javac, compile», связанной с путем к классу.

Не отображается отладочное или подробное сообщение.

Такое поведение возникает из-за того, что в classpath существуют пакеты jar несовместимой (улучшенной)версии, которые не вызывают выходных классов.