0
我試圖讓Ant來編譯我的項目,它具有以下目錄結構的依賴關係:Ant的運行時類路徑找不到javac的
MyProject/
src/main/java/
com/
<The rest of my source>
gen/
bin/
main/
<Where I want all Java sources compiled to>
lib/
main/
<All of my dependencies>
build.xml
build.properties
這裏是我的Ant任務:
<path id="src.main.java.path">
<fileset dir="src/main/java">
<include name="**.*java"/>
</fileset>
</path>
<path id="lib.main.path">
<fileset dir="lib/main">
<include name="**.*jar"/>
</fileset>
</path>
<target name="compile">
<javac includeantruntime="true" srcdir="src/main/java" destdir="gen/bin/main">
<!--
Define a new classpath composed of all main Java sources and main Java dependencies,
and use them for this compilation.
-->
<classpath>
<pathelement path="src.main.java.path"/>
<pathelement path="lib.main.path"/>
</classpath>
</javac>
</target>
我應該提到build.xml
位於項目根目錄,並且其basedir
屬性設置爲"."
(項目根目錄)。
當我運行「編譯」的任務,我拿到100+編譯器錯誤,它找不到任何我的項目依賴的(如吉斯,喬達時,XStream的,等等):
compile:
[javac] Compiling 53 source files to /<path-to-my-project-root>/MyProject/gen/bin/main
[javac] /<path-to-my-project-root>/MyProject/src/main/java/org/me/Widget.java:37: package com.google.inject does not exist
[javac] import com.google.inject.AbstractModule;
[javac] ^
[javac] /<path-to-my-project-root>/MyProject/src/main/java/org/me/MyWidget.java:45: cannot find symbol
[javac] symbol: class AbstractModule
[javac] public class AppUziContext extends AbstractModule {
[javac]
BUILD FAILED
/<path-to-my-project>/MyProject/build.xml:51: Compile failed; see the compiler error output for details.
...這個列表有100多個錯誤,看起來像這樣,但對於找不到的每個依賴項都是不同的。
我相信問題在於我配置的路徑中的某處,並且在javac/classpath
之內引用,但是在閱讀Ant文檔後,我無法弄清楚我要去哪裏。提前致謝!
謝謝@ pb2q(+1) - 但那不是。我確實嘗試了你的建議,只是爲了排除它,但仍然得到了同樣的錯誤(確切地說)。如果你注意到,我沒有設置'src.main.java.path'或'lib.main.path'作爲屬性,我將它們定義在編譯目標之上並給它們賦予這些標籤。其他事情正在發生。再次感謝! – IAmYourFaja