有条件的

  • 本文关键字:有条件 ant
  • 更新时间 :
  • 英文 :


我想在某些条件下执行subant。比如:

<if>
<equals value="value1" property="${some.property">
<then>
  <subant target="@{target}" failonerror="true" inheritall="false">
    <buildpath refid="some-ref1" />
  </subant>
</then>
<else>
  <subant target="@{target}" failonerror="true" inheritall="false">
          <buildpath refid="some-ref2" />
  </subant>
</else>
</if>

却找不到办法。请阅读ant手册并在谷歌上搜索,但没有找到解决方案。

谢谢。

我认为错误可能在于你的等号标签。而不是使用'value'和' property '属性,尝试使用'arg1'和'arg2',即:

<equals arg1="value1" arg2="${some.property}">

查看ant-contrib文档中的示例:http://ant-contrib.sourceforge.net/tasks/tasks/if.html.

如果问题是你的' If ', 'then'和/或'else'标签没有正确解析,那么你可能会错过反贡献库。ant-contrib没有原生包含在ant中,但是您可以从这里下载:http://sourceforge.net/projects/ant-contrib/files/

根据ant-contrib网站(http://ant-contrib.sourceforge.net/),以下是安装ant-contrib必须做的事情:

选项1:将Ant -contrib-0.3.jar复制到Ant安装的lib目录中。如果您希望在自己的项目中使用其中一个任务,请添加

<taskdef resource="net/sf/antcontrib/antcontrib.properties"/>

到你的构建文件。

选项2:将ant-contrib-0.3.jar保存在单独的位置。现在必须显式地告诉Ant在哪里可以找到它(比如在/usr/share/java/lib中):

<taskdef resource="net/sf/antcontrib/antcontrib.properties">
  <classpath>
    <pathelement location="/usr/share/java/lib/ant-contrib-0.3.jar"/>
  </classpath>
</taskdef>

请查找<target if="${some.property}>。你可能需要另一个有unless的目标。

如果属性与文件是否存在有关,请参阅Ant任务检查文件是否存在?即使这不是你主要关心的,我相信你可以从公认的答案中得到想法。

你是说呼叫另一个目标吗如果是

<if> 
<equals value="value1" property="${some.property">
<then>
<antcall target="@{target}" failonerror="true" inheritall="false">
 </then>
<else>
  <antcall target="@{target}" failonerror="true" inheritall="false">

</else>
</if>

相关内容

  • 没有找到相关文章

最新更新