我已经阅读了这篇文章并用它来编写我的第一个 Ant 任务,名为AutoTestTask
:
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 目录中 -有人可以确认吗?令我困惑的是xmlns:at="antlib:org.me.auto-test"
XML 顶部的属性,特别是该antlib:<whatever>
部分。这是某种特定于 Ant 的协议,它说“*任何由at
命名空间限定的东西都可以在 ${ANT_HOME}/lib 中找到,并且根包为org.me.auto-test
*”?如果没有,有人可以解释它的含义吗?
另外,如果我遗漏了任何明显的内容或配置不正确,请告诉我。提前致谢!