I want to set a property in an ant task differently by os type.
The property is a directory, in windows i want it to be "c:\flag" in unix/linux "/opt/flag".
My current script only works when i run it with the default target, but why ?
<target name="checksw_path" depends="if_windows, if_unix"/> <target name="checkos"> <condition property="isWindows"> <os family="windows" /> </condition> <condition property="isLinux"> <os family="unix" /> </condition> </target> <target name="if_windows" depends="checkos" if="isWindows"> <property name="sw.root" value="c:\flag" /> <echo message="${sw.root}"/> </target> <target name="if_unix" depends="checkos" if="isLinux"> <property name="sw.root" value="/opt/flag" /> <echo message="${sw.root}"/> </target>
In all my ant targets i've added a "depends=checksw_path".
If i run the default target in windows i've got correctly "c:\flag" but if i run a non default target i've got that the debug goes in the if_windows but the instruction " " does not set the property that remains /opt/flag. I'm using ant 1.7.1.
The 'basedir' is the base directory from which any relative directories used within the Ant build file are referenced from. If this is omitted the parent directory of the build file will be used.
Move your condition out of the <target />
, as your target probably isn't invoked.
<condition property="isWindows"> <os family="windows" /> </condition> <condition property="isLinux"> <os family="unix" /> </condition>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With