除非我在Linux上运行ant(不在Windows上调用),否则我有一个我不想调用的目标
<target name="jar.all" depends="clean,compile.nic,jar,jar.resources"/>
我不希望在Windows上调用的目标是: compile.nic
我该怎么做?
答案 0 :(得分:15)
将if属性插入compile.nic目标。
<target name="compile.nic" if="windowsos">
在运行目标之前使用此条件
<condition property="windowsos">
<os family="windows" />
</condition>
<condition property="linuxos">
<os family="unix" />
</condition>
答案 1 :(得分:10)
这是Windows与UNIX命令的真实示例。 ELSE改进了以前的答案。
<condition property="maven.executable" value="mvn.bat" else="mvn">
<os family="windows" />
</condition>
<target name="clean">
<exec executable="${maven.executable}">
<arg value="clean" />
</exec>
</target>
答案 2 :(得分:7)
Can I make the Ant copy task OS-specific?
此外,某些任务支持os
属性。例如exec:
<exec executable="cmd" os="windows"/>
答案 3 :(得分:1)
您可以使用os
条件设置属性,然后通过添加if
或unless
属性(取决于您如何定义属性)跳过目标