使用条件在Ant中取消设置属性并在Ant中删除属性

Cod*_*oid 6 java ant

你怎么解决蚂蚁的财产?所以这是作为财产完全删除?

<condition property="proguard.config" value="proguard.cfg">
      <isset property="proguarded"/>
</condition>


 <condition property="proguard.config" value="">
      <not>
      <isset property="proguarded"/>
      </not>
</condition>
Run Code Online (Sandbox Code Playgroud)

这似乎有效.然而,即使存在proguard.config这样的属性,proguard也会运行.那么如何有条件地将proguard.config作为属性删除呢?我知道如果proguard看到.properties文件中存在proguard.config属性,它将运行.

Chr*_*ert 9

Ant手册物业任务规定:

属性是不可变的:任何设置属性的人都会将其冻结为其余的构建; 他们绝对不是变数.

话虽如此,有几个解决方法:

  1. 本地任务 - 给定范围内的本地属性在较高范围内"隐藏"相同名称的属性(在Macrodefs中特别有用)

  2. Ant-Contrib变量任务 - Ant-Contrib提供了灵活性,但它也增加了依赖性,有时会诱使您编写可能在Ant脚本或自定义Ant任务中更好地表达的过程Ant代码


在上面的示例中,如果proguarded在执行Ant项目期间属性没有更改,则无需取消设置该属性.例如,您可以有条件地执行目标,如下所示:

<target name="proguarded-target" if="proguarded">
  ...
</target>

<target name="not-proguarded-target" unless="proguarded">
  ...
</target>
Run Code Online (Sandbox Code Playgroud)