通過指定「-lib foo.jar」給ant,我得到foo.jar中的類被添加到ant classloader並且可用於各種任務採取類名參數。如何模仿_within_ build.xml中的「-lib foo.jar」
我想能夠指定相同的行爲,但只能從裏面 build.xml(所以我們可以在香草螞蟻上做到這一點)。
對於任務定義我們已經運作的代碼看起來像:
<taskdef resource="net/sf/antcontrib/antlib.xml" description="for/foreach tasks">
<classpath>
<pathelement location="${active.workspace}/ant-contrib-1.X/lib/ant-contrib.jar" />
</classpath>
</taskdef>
其中定義完全從列出的螞蟻contrib.jar提供。
「全局」ant類路徑的等價機制是什麼?
(我曾想過了,這是獲得<javac>
使用ECJ-3.5.jar編譯與一個JRE的方式 - Specifying the Eclipse compiler completely from _within_ build.xml - 與螞蟻1.7兼容的方式更好的建議,歡迎:)
編輯:看來,即將釋放的版本1.0的ant4eclipse包括ecj。這並沒有回答這個問題,但可以解決我的基本問題。
所以你的建議基本上是重新推出螞蟻具有「-lib foo.jar中」的說法呢?我同意這應該是最後的措施 - 我想要一個「只需將其添加到當前類路徑」方法 – 2010-03-04 07:47:13
@Thorbjørn。如果您所依賴的任務無法在當前類路徑中找到所需的庫,並且沒有提供擴展名以僅爲當前任務指定它,那麼此方法與其他任何方法一樣好。我仔細閱讀了鏈接文檔,並沒有提及任何您需要的擴展功能。也許這是要求Ant 1.9的東西。我認爲構建文件應該是自包含的,而不是依賴於全局'lib'或用戶'lib'目錄。 – 2010-03-04 14:05:32
我將攜帶jar文件以及build.xml生成相對路徑。這只是它加載的問題。 – 2010-03-04 17:27:04