我想通过os类型以不同的方式在ant任务中设置属性。使用ant来检测os并设置属性
该属性是一个目录,在Windows中,我希望它是“c:\ flag”在unix/linux“/ opt/flag”中。
我当前的脚本只适用于当我用默认目标运行它,但为什么?
<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>
在我已经添加了我所有的Ant目标 “取决于= checksw_path”。
如果我在Windows中运行默认目标,我已经正确地“c:\ flag”但如果我运行一个非默认目标,我已经调试进入if_windows,但指令“”没有设置该属性仍然是/ opt/flag。我正在使用ant 1.7.1。