3

我有一个检查操作系统系列的Ant脚本

<os family="windows" />

因此它正在构建我的应用程序。我想使用Cygwin,我期待当我通过 Cygwin 调用它时,它会给我 Linux/Unix 版本,而不是 Windows 版本。但显然这并没有发生。

通过 Cygwin 运行时,我能以某种方式伪造操作系统吗?

我已经尝试将环境变量 $OS 设置为 Linux,但这没有帮助。

有什么建议么?

4

1 回答 1

2

一个简单的解决方案是将您的特定 linux 任务放在它自己的目标中,如下所示:

<target name="linuxbuild" if="islinuxbuild">
...
</target>
<target name="windowsbuild" unless="islinuxbuild">
...
</target>

并使用以下命令开始为 linux 构建 ant:

ant -f yourbuild.xml -Dislinuxbuild=whatever

否则 :

ant -f yourbuild.xml

自 Ant 1.8.x 以来,目标中的 if/unless 属性已被扩展以获得额外的灵活性,请参阅Ant 手册 if/unless 属性,但我的示例仍然适用于任何 ant 版本。

于 2013-04-24T19:00:08.730 回答