如何使蚂蚁目标彼此独占?

时间:2011-03-09 08:10:25

标签: ant

在ANT中,通过使用属性target.depends很容易设置目标依赖性。

但是我怎样才能设置一些彼此独占的目标。那么它会在执行之前检查目标组合吗?

2 个答案:

答案 0 :(得分:4)

您可以让它们中的每一个定义一个公共属性,并且只有在尚未设置此属性时才执行:

<target name="a" unless="aOrBAlreadyRun">
    <property name="aOrBAlreadyRun" value="true"/>
    ...
</target>

<target name="b" unless="aOrBAlreadyRun">
    <property name="aOrBAlreadyRun" value="true"/>
    ...
</target>

有关解释,请参阅http://ant.apache.org/manual/targets.html

编辑:

如果您希望在执行两个目标时构建失败,则在属性已设置时失败:

<target name="a">
    <fail if="aOrBAlreadyRun" 
          message="You can't have a and b executed in the same build"/>
    <property name="aOrBAlreadyRun" value="true"/>
    ...
</target>

<target name="b">
    <fail if="aOrBAlreadyRun" 
          message="You can't have a and b executed in the same build"/>
    <property name="aOrBAlreadyRun" value="true"/>
    ...
</target>

答案 1 :(得分:0)

做独家的最佳方式非常简单。

只是不要将它们写入相同的build.xml文件,而是复制它并相应地修改两个版本。