define ant property from environment with default value
Solution 1:
An example from the Ant documentation of how to get an environment variable into a property:
<property environment="env"/>
<echo message="Number of Processors = ${env.NUMBER_OF_PROCESSORS}"/>
<echo message="ANT_HOME is set to = ${env.ANT_HOME}"/>
In your case, you would use ${env.RELEASE_VER}
.
Then for the conditional part, the documentation here says that there are three possible attributes:
Attribute Description Required property The name of the property to set. Yes value The value to set the property to. Defaults to "true". No else The value to set the property to if the condition No evaluates to false. By default the property will remain unset. Since Ant 1.6.3
Putting it together:
<property environment="env"/>
<condition property="fileTargetName" value="${env.RELEASE_VER}" else="dev">
<isset property="env.RELEASE_VER" />
</condition>
Solution 2:
You don't need to use a <condition>
for this. Properties in Ant are immutable, so you can just use this:
<property environment="env"/>
<property name="env.RELEASE_VER" value="dev"/>
If the RELEASE_VER
environment variable is set, then the property will get its value from the environment and the second <property>
statement will have no effect. Otherwise, the property will be unset after the first statement, and the second statement will set its value to "dev"
.
Solution 3:
I'm sure there are easier ways than this, but how about:
<project name="example" default="show-props">
<property environment="env" />
<condition property="fileTargetName" value="${env.RELEASE_VER}">
<isset property="env.RELEASE_VER" />
</condition>
<condition property="fileTargetName" value="dev">
<not>
<isset property="env.RELEASE_VER" />
</not>
</condition>
<target name="show-props">
<echo>property is ${fileTargetName}</echo>
</target>
</project>