[英]Error with target in building by build.xml
我打開了一個在eclipse env中包含build.xml和ivy.xml的項目。 在我應用運行方式..>通過右鍵單擊build.xml生成的Ant Ant之后,我遇到了此錯誤:
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>
在此部分中發生錯誤:
我將其更改為
<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中沒有任何ant插件等),如果有,我應該在eclipse中使用哪個插件才能正確打開此類項目?
請幫我。 謝謝
錯誤在這里:
<target name="compile" depends="retrieve"
聲明目標名稱為“ retrieve”或刪除依賴項。
這是通過從另一個構建文件中復制粘貼粘貼創建的構建文件嗎?
您有一個編譯目標,該目標依賴於另一個不存在的目標,稱為“檢索”
<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>
使用ivy時,通常有一個首先解決(如果需要的話可以下載)第3方jar依賴項的目標。 為了編譯代碼,這是必需的。
您的第二個錯誤是由您的構建的以下部分引發的:
<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} / default目錄中找到jar。 大概這是丟失檢索任務的一部分。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.