Ant 中的条件属性

Chr*_*ris 0 ant

以下是手册中关于“条件”的说明:

如果某个条件成立,则设置属性。如果条件成立,则属性值默认设置为 true;否则,不会设置该属性。您可以通过指定 value 属性将值设置为默认值以外的值

我尝试的:

<echo message="${a}" />
<condition property="a">
    <isfalse value="test" />
</condition>
<echo message="${a}" />
Run Code Online (Sandbox Code Playgroud)

我的推理:

如果属性“a”为 false,则将“a”的值设置为“test”

回显的结果是:

[echo] ${a}
[echo] true
Run Code Online (Sandbox Code Playgroud)

该属性被设置为“true”,因为它是 false,但是“value”的目的是什么?

谢谢

克里斯

Ian*_*rts 5

Ant 属性是不可变的——一旦设置就无法更改。因此,您无法修改“a”的值,但可以有条件地设置不同的属性。对您的问题陈述进行以下轻微修改:

如果属性“a”为 false,则将b的值设置为“test”

你可以用

<condition property="b" value="test">
  <isfalse value="${a}"/>
</condition>
Run Code Online (Sandbox Code Playgroud)

标记condition的 property 属性是您要设置的属性,其 value 属性是条件成功时要设置的值。您正在测试的值是isfalse.