你如何取消蚂蚁的财产?所以这是作为一个属性完全删除?
<condition property="proguard.config" value="proguard.cfg">
<isset property="proguarded"/>
</condition>
<condition property="proguard.config" value="">
<not>
<isset property="proguarded"/>
</not>
</condition>
这似乎有效。然而,即使存在proguard.config这样的属性,proguard也会运行。那么如何有条件地将proguard.config作为属性删除呢?我知道如果proguard看到.properties文件中存在proguard.config属性,它将会运行。
答案 0 :(得分:9)
属性是不可变的:无论是谁设置属性,都会将其冻结为其余的构建;他们绝对不是变数。
话虽如此,有几个解决方法:
Local Task - 给定范围内的本地属性“阴影”更高范围内同名的属性(在Macrodefs中特别有用)
Ant-Contrib Variable Task - Ant-Contrib提供了灵活性,但它也增加了一个依赖项,有时会诱使您编写可能在Ant脚本或自定义Ant任务中更好地表达的过程Ant代码
在上面的示例中,如果在执行Ant项目期间属性proguarded
没有更改,则无需取消设置该属性。例如,您可以按条件执行目标:
<target name="proguarded-target" if="proguarded">
...
</target>
<target name="not-proguarded-target" unless="proguarded">
...
</target>