我已閱讀this文章,並用它來寫我的第一個Ant任務稱爲AutoTestTask
:編寫我的第一個Ant任務:我錯過了什麼?
public class AutoTestTask extends org.apache.tools.ant.Task {
// ...
}
我也編譯和打包該對象到auto-test.jar
。
如果我的Ant的理解是正確的,那麼將它作爲另一個項目構建的一部分,我用下面的XML:
<project name="SomeProject" basedir="." default="deploy" xmlns:at="antlib:org.me.auto-test">
<!-- Task definitions. -->
<taskdef name="at-autotest" classname="org.me.auto-test.AutoTestTask"/>
<!-- Use the task. -->
<at:autotest/>
</project>
我相信我還需要auto-test.jar
複製到我的$ { ANT_HOME}/lib目錄 - 有人可以確認嗎?令我困惑的是XML頂部的xmlns:at="antlib:org.me.auto-test"
屬性,特別是antlib:<whatever>
部分。這是否是某種特定於Ant的協議,它說:「* at
名稱空間限定的任何內容都將在根目錄爲org.me.auto-test
*」的$ {ANT_HOME}/lib中找到?如果沒有人能解釋它是什麼意思?
此外,如果我錯過了任何明顯的或有任何配置不正確,請讓我知道。提前致謝!