我在 eclipse 项目中有一个构建文件。构建文件尝试调用位于同一 eclipse 工作区的另一个项目中的 Java 类。
下面是调用 ant 文件的简单来源。
<target name="blah">
<antcall target="invokeJavaClass"/>
</target>
<target name="invokeJavaClass">
<com.abc.def.SampleClassName>
<parameter name="param1" value="value1" />
<parameter name="param1" value="value1" />
</com.abc.def.SampleClassName>
</target>
生成失败,并显示 "无法创建任务或类型 com.abc.def.SampleClassName" 原因:名称未定义。 要执行的操作: 检查拼写。 要执行的操作: 检查是否已声明任何自定义任务/类型。 操作:检查是否已发生任何/声明。
我已经在classpath
中包含ant-contrib-1.0b3
,并包含了用于net/sf/antcontrib/antlib.xml
的任务def
我花了 3 天时间试图弄清楚这一点,但仍然没有从零开始取得进展。有人可以给出一些指示吗?
遇到它不理解的 XML 标记时会发出以下错误消息
<project name="demo" default="build">
<target name="build">
<i.am.an.invalid.task>
</i.am.an.invalid.task>
</target>
</project>
例如
BUILD FAILED
/home/mark/tmp/build.xml:4: Problem: failed to create task or type i.am.an.invalid.task
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.
要使用定制任务扩展 ANT,必须使用任务定义显式声明它,或者创建 ANT 库。
既然你提到了蚂蚁贡献,下面的问题可能是你的问题吗?
- 没有antlib.xml在我的ant-contrib-0.3中