试图使这个目标有条件

时间:2016-09-28 00:30:28

标签: ant ant-contrib

这就是我要做的事情:

<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.

我真的需要帮助。我真的很感激

1 个答案:

答案 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>