I have an Ant script that is failing where it shouldn't.
properties file:
application.foo.name=foo
application.foo.path=[path-to-foo]
application.foo.file=foo.jar
appName=
code:
<target name="deploy_app" description="Deploys app">
<condition property="appSelected">
<and>
<not>
<equals arg1="${appName}" arg2="" />
</not>
<isset property="${appName}" />
</and>
</condition>
<if>
<equals arg1="${appSelected}" arg2="true" />
<then>
<!-- do nothing! -->
</then>
<else>
<input
message="Please enter application name:"
addproperty="newAppName"
/>
<var name="appName" value="${newAppName}" />
</else>
</if>
<antcall inheritAll="true" target="deploy" />
</target>
<target name="deploy">
<echo message="Deploying from property: application.${appName}.file" />
<propertycopy silent="true" name="appFile" from="application.${appName}.file" />
<propertycopy silent="true" name="appPath" from="application.${appName}.path" />
<echo message="appFile: ${appFile}" />
<fail unless="${appFile}" message="appfile: ${appFile} No application with the name ${appName} is defined in your properties file." />
</target>
output:
[echo] Deploying from property: application.foo.file
[echo] appFile: foo.jar
ERROR: The following error occurred while executing this line:
appfile: foo.jar No application with the name foo is defined in your properties file.
It's even printing out the value of the property, but thinks it doesn't exist!
Any reason why?
the
unless
parameter for the<fail>
command takes a property name, not a property value!fixed version: