我已阅读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中找到?如果没有人能解释它是什么意思?
此外,如果我错过了任何明显的或有任何配置不正确,请让我知道。提前致谢!