ANT dokáže rozpoznat relativně snadno nad jakým OS byl právě spuštěn. Tahle vlastnost se Vám bude hodit zejména tehdy, pokud budete nuceni spouštět příkazy závisle na platformě.
Při detekci OS jsem narazil na drobný problém se správným rozpoznáním Mac OS X a Linux (oba jsou na UNIX jádru) – to se vyřešilo složitější podmínkou. V závěru ANT skriptu najdete také příklad použití.
<project name="osDetect">
<!-- Mac OS X based -->
<condition property="isMac">
<os family="mac"/>
</condition>
<!-- Mac OS but not OS X -->
<condition property="isMacButNotMacOsX">
<and>
<os family="mac"/>
<not>
<os family="unix"/>
</not>
</and>
</condition>
<!-- UNIX based system (unix, max os x) -->
<condition property="isUnix">
<os family="unix"/>
</condition>
<!-- Linux BASED system -->
<condition property="isLinux">
<and>
<os family="unix"/>
<not>
<os family="mac"/>
</not>
</and>
</condition>
<target name="-linux.run" if="isLinux">
<echo> je to Linux </echo>
</target>
<target name="-mac.run" if="isMac">
<echo> je to Mac </echo>
</target>
<target name="run" depends="-linux, -mac.run" />
</project>
Tip: jméno právě používaného OS můžete získat z proměnné os.name
<target name="os">
<echo>${os.name}</echo>
</target>
