我有一个检查操作系统系列的Ant脚本
<os family="windows" />
因此它正在构建我的应用程序。我想使用Cygwin,我期待当我通过 Cygwin 调用它时,它会给我 Linux/Unix 版本,而不是 Windows 版本。但显然这并没有发生。
通过 Cygwin 运行时,我能以某种方式伪造操作系统吗?
我已经尝试将环境变量 $OS 设置为 Linux,但这没有帮助。
有什么建议么?
一个简单的解决方案是将您的特定 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 版本。