I would like to not call a target in build.xml in the case that there is a certain environment variable.
Using Ant 1.7.0, the following code does not work:
<property environment="env"/>
<property name="app.mode" value="${env.APP_MODE}"/>
<target name="someTarget" unless="${app.mode}">
...
</target>
<target name="all" description="Creates app">
<antcall target="someTarget" />
</target>
Target “someTarget” executes whether there is the environment variable APP_MODE or not.
The docs for the
unlessattribute say:So in your case, you need to put the name of the property, rather than an evaluation of the property:
Notes
Other values are still assumed to be property names and so the item is enabled only if the named property is defined.
Reference