这就是我要做的事情:
<target name="example">
<if>
<equals arg1="${var}" arg2="true" />
<then>
<exec executable="/bin/bash">
<arg value="script.sh" />
</exec>
</then>
</if>
</target>
当我用ant示例执行目标时,我收到此错误:
Problem: failed to create task or type if
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.
我真的需要帮助。我真的很感激
答案 0 :(得分:1)
这是因为if
是来自ant-contrib
库的自定义任务。
确保您的类路径中的 ant-contrib 库。二进制文件可以从here下载。将ant-contrib jar文件解压缩到某个位置。并在 taskdef 下面指定相同内容。
然后在 build.xml 的开头添加 taskdef 。有关详细信息,请参阅documentation。
例如:
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="/absolute/path/to/ant-contrib-1.0b3.jar" />
</classpath>
</taskdef>