Reputation: 12890
How do I check the existence of a property using Ant?
I am open to the use of ant-contrib
, if Ant doesn't provide a similar thing.
Also, ant-contrib
has an assert task, which provides exists
, but the assertion is not what I need here since I would prefer a boolean return value.
Upvotes: 36
Views: 77651
Reputation: 378
Since Ant 1.9.1 it is possible to use "if" and "unless" attributes. You can use these new attributes if you add the 2 namespaces xmlns:if="ant:if" and xmlns:unless="ant:unless" to the project.
<!DOCTYPE project>
<project xmlns:if="ant:if" xmlns:unless="ant:unless">
<property unless:set="property" name="property.is.set" value="false"/>
<property if:set="property" name="property.is.set" value="true"/>
<echo>${property.is.set}</echo>
</project>
see also https://ant.apache.org/manual/ifunless.html
Upvotes: 12
Reputation: 16235
You can use the Condition task with an isset condition.
<project default="test">
<property name="a" value="a"/>
<target name="test">
<condition property="a.set" else="false">
<isset property="a"/>
</condition>
<condition property="b.set" else="false">
<isset property="b"/>
</condition>
<echo message="a set ? ${a.set}"/>
<echo message="b set ? ${b.set}"/>
</target>
</project>
Output:
test:
[echo] a set ? true
[echo] b set ? false
Upvotes: 54