Ant 如何使蚂蚁目标相互排斥?
在ANT中,通过使用target.depends属性很容易设置目标依赖关系Ant 如何使蚂蚁目标相互排斥?,ant,Ant,在ANT中,通过使用target.depends属性很容易设置目标依赖关系 但是,我如何设置一些目标,它们是相互排斥的。因此,在执行它们之前,它将检查目标组合?您可以让它们中的每一个定义一个公共属性,并且仅在尚未设置此属性时执行: <target name="a" unless="aOrBAlreadyRun"> <property name="aOrBAlreadyRun" value="true"/> ... </target> <
但是,我如何设置一些目标,它们是相互排斥的。因此,在执行它们之前,它将检查目标组合?您可以让它们中的每一个定义一个公共属性,并且仅在尚未设置此属性时执行:
<target name="a" unless="aOrBAlreadyRun">
<property name="aOrBAlreadyRun" value="true"/>
...
</target>
<target name="b" unless="aOrBAlreadyRun">
<property name="aOrBAlreadyRun" value="true"/>
...
</target>
...
...
有关解释,请参阅
编辑:
如果希望在执行两个目标时生成失败,则在已设置属性时失败:
<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>
...
...
您可以让它们各自定义一个公共属性,并且只有在尚未设置此属性的情况下才能执行:
<target name="a" unless="aOrBAlreadyRun">
<property name="aOrBAlreadyRun" value="true"/>
...
</target>
<target name="b" unless="aOrBAlreadyRun">
<property name="aOrBAlreadyRun" value="true"/>
...
</target>
...
...
有关解释,请参阅
编辑:
如果希望在执行两个目标时生成失败,则在已设置属性时失败:
<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>
...
...
实现独占的最佳方法非常简单
只是不要将它们写入同一个build.xml文件,而是复制它并相应地修改两个版本。实现这一点的最佳方法非常简单
只是不要将它们写入同一个build.xml文件,而是复制一份,并相应地修改两个版本。在执行其中一个版本后,检查并跳过该版本,而不显示警告或错误消息。您的意思是,如果两个目标都执行,您希望ant带着错误退出吗?酷。有可能在之前警告它吗?之后不停止?在执行其中一个目标后检查并跳过,没有警告或错误消息。您的意思是,如果两个目标都执行了,您希望ant带着错误退出吗?酷。有可能在之前警告它吗?之后不停止吗?