我想根据操作系统类型在 ant 任务中设置不同的属性。
该属性是一个目录,在 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 目标中,我添加了一个“depends=checksw_path”。
如果我在 Windows 中运行默认目标,我会正确地得到“c:\flag”,但如果我运行非默认目标,我会得到调试进入 if_windows 的结果,但指令“”不会设置保留的属性/选择/标志。我正在使用 ant 1.7.1。
将您的状况移出<target />
,因为您的目标可能没有被调用。
<condition property="isWindows">
<os family="windows" />
</condition>
<condition property="isLinux">
<os family="unix" />
</condition>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)