2014-10-05 2 views
0

Я открыл проект с build.xml и ivy.xml в eclipse env. после я применил Run As ..> Ant Построенная правой кнопкой мыши build.xml, я столкнулся с этой ошибки:Ошибка с целью в build by build.xml

BUILD FAILED 
Target "retrieve" does not exist in the project "aaa". It is used from target "compile". 

мой файл build.xml:

<project name="WOE" default="build"> 

    <!--<import file="../build/ivy-targets.xml"/>--> 

    <property name="dir.base" location="."/> 
    <!--<property name="dir.repos" location="${dir.base}/../repository/modules"/>--> 
    <property name="dir.src" location="${dir.base}/src/java"/> 
    <property name="dir.lib" location="${dir.base}/src/lib"/> 
    <property name="dir.ivy.lib" location="${dir.base}/lib"/> 
    <property name="dir.build" location="${dir.base}/build"/> 
    <property name="dir.classes" location="${dir.build}/classes"/> 
    <property name="module.jar" location="${dir.build}/WOEParse.jar"/> 

    <property name="dir.doc" location="${dir.base}/doc"/> 
    <property name="dir.javadoc" location="${dir.doc}/api"/> 

    <path id="classpath"> 
     <fileset dir="${dir.lib}" includes="*.jar"/> 
     <fileset dir="${dir.ivy.lib}/default" includes="*.jar"/> 
     <!--<pathelement path="${dir.repos}/edu.stanford/BaselineNLProcessor/521/jars/baseline-nlprocessor-2010-06-22-521.jar" />--> 
    </path> 

    <path id="run.classpath"> 
     <path refid="classpath"/> 
     <pathelement location="${module.jar}"/> 
    </path> 

    <target name="clean" description="Deletes artifacts produced by build"> 
     <delete dir="${dir.build}"/> 
     <delete dir="${dir.javadoc}"/> 
     <delete dir="${dir.ivy.lib}"/> 
    </target> 

    <target name="compile" depends="retrieve" description="Compiles source code"> 
     <mkdir dir="${dir.classes}"/> 
     <javac destdir="${dir.classes}" 
       debug="true" 
       target="1.6"> 
      <classpath refid="classpath"/> 
      <src path="${dir.src}"/> 
     </javac> 

    </target> 

    <target name="build" depends="compile" description="Builds module JAR file"> 
     <jar jarfile="${module.jar}"> 
      <fileset dir="${dir.classes}" includes="**/*.class"/> 
      <manifest> 
       <attribute name="Built-By" value="${user.name}"/> 
      </manifest> 
     </jar> 
    </target> 

    <target name="run" depends="build" description="Processes a simple example file"> 
     <java classname="edu.washington.cs.woe.WOEParse" fork="true" failonerror="true"> 
      <jvmarg value="-Xmx1G"/> 
      <classpath refid="run.classpath"/> 
      <arg line="-inFile ./light-config/data/testSentenceFile -cfDir ./light-config/"/> 
     </java> 
    </target> 

    <target name="javadoc" description="Builds javadoc html files for this source code"> 
     <mkdir dir="${dir.javadoc}"/> 
     <javadoc classpathref="classpath" destdir="${dir.javadoc}" sourcepath="${dir.src}"> 
      <packageset dir="${dir.src}" defaultexcludes="yes"> 
      </packageset> 
     </javadoc> 
    </target> 


</project> 

Ошибка произошла в этой части :

enter image description here

Я изменил его

<target name="compile" description="Compiles source code"> 

но он показывает другую ошибку:

Buildfile: D:\eclipse workspace\WOE\build.xml 
compile: 
    [mkdir] Created dir: D:\eclipse workspace\WOE\build\classes 
    [javac] D:\eclipse workspace\WOE\build.xml:38: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds 
    [javac] Compiling 42 source files to D:\eclipse workspace\WOE\build\classes 

BUILD FAILED 
D:\eclipse workspace\WOE\build.xml:38: D:\eclipse workspace\WOE\lib\default does not exist. 

Total time: 328 milliseconds 

Что я должен делать? Есть ли какие-либо проблемы с eclipse env? (У меня нет какого-либо муравьиного плагина или т. Д. В Eclipse env), если да, какой плагин следует использовать в eclipse, чтобы правильно открыть такие проекты?

Пожалуйста, помогите мне. Благодаря

+1

Покажите нам build.xml –

+0

@ Greg-449: Хорошо. Я сделал это. – BlueGirl

ответ

1

Ошибка находится здесь:

<target name="compile" depends="retrieve" 

заявившим цель с именем «получить» или удалить зависимость.

+0

вы имеете в виду я изменить его на: <имя цели = «компилировать» Описание = «компилировать исходный код»> Или <имя цели = «получить» Описание = «компилировать исходный код»> Нет разрушительный эффект во всем проекте? У меня нет знаний о цели! – BlueGirl

1

Это файл сборки, созданный путем копирования-n-вставки из другого файла сборки?

Первого выпуск

У вас есть цель компиляции, которая зависит от другой несуществующей цели под названием «получить»

<target name="compile" depends="retrieve" description="Compiles source code"> 
    <mkdir dir="${dir.classes}"/> 
    <javac destdir="${dir.classes}" 
      debug="true" 
      target="1.6"> 
     <classpath refid="classpath"/> 
     <src path="${dir.src}"/> 
    </javac> 
</target> 

При использовании плюща это довольно часто, чтобы иметь цель, первые рассасывается (загрузка, если необходимые) зависимости сторонней банки. Это необходимо для компиляции вашего кода.

Второй выпуск

Ваша вторая ошибка возникает в следующей части вашей сборки:

<path id="classpath"> 
    <fileset dir="${dir.lib}" includes="*.jar"/> 
    <fileset dir="${dir.ivy.lib}/default" includes="*.jar"/> 
    <!--<pathelement path="${dir.repos}/edu.stanford/BaselineNLProcessor/521/jars/baseline-nlprocessor-2010-06-22-521.jar" />--> 
</path> 

код ожидает найти банки в $ {dir.ivy.lib}/по умолчанию. Предположительно это происходит как часть отсутствующей задачи извлечения.

Рабочий пример с использованием плюща

Надеюсь, это поможет.

0

Перейти к предпочтению, проверьте "Игнорировать все проблемы Buildfile".

https://i.stack.imgur.com/8SiqM.png