ant - 如何通过 Cygwin 在 Ant 中伪造 OS 系列

标签 ant cygwin

我有一个用于检查操作系统系列的 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 manual if/unless attributes ,但我的例子仍然适用
任何 Ant 版本。

关于ant - 如何通过 Cygwin 在 Ant 中伪造 OS 系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16198552/

相关文章:

Javadoc 正在消失

java - 为什么使用句点分隔单词是 Ant 构建文件中目标名称的惯例?

java - 无法使用 Ant 删除文件

compiler-errors - 来自源的 'making' fontforge错误

android - adb shell : can't use the ESCAPE key

cygwin 上的 Python 安装

ant - 在Gulp中定义 "global"行为(测量任务持续时间)

android - Android 可用 Ant 任务的文档?

html - 将 XSL 应用于目录中所有文件的通用方法?

Linux box,计算目录中每个子文件夹的文件数