在ANT中,通过使用属性target.depends很容易设置目标依赖性。
但是我怎样才能设置一些彼此独占的目标。那么它会在执行之前检查目标组合吗?
答案 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文件,而是复制它并相应地修改两个版本。