如何在雪豹上有条件地建立一个蚂蚁目标

Hei*_*nen 5 ant osx-snow-leopard

我有一个跨平台的应用程序,我们使用ant在不同的平台上构建不同的东西.现在出现了一个新的要求,如果在Snow Leopard或者后来的Leopard上进行构建,我需要采取不同的做法.

我查看了http://www.devdaily.com/blog/post/java/how-determine-operating-system-os-ant-build-script,其中介绍了如何区分Windows和Macintosh等,以及http ://www.jajakarta.org/ant/ant-1.6.1/docs/en/manual/api/org/apache/tools/ant/taskdefs/condition/Os.html显示了os的其他属性,例如${os.version}.

我还没想到的是如何比较它的os.version价值,如果它是10.6或更高的雪豹的东西.如果我可以snow_leopard在Snow Leopard上将变量设置为1,我想我可以将其余部分计算出来.

mar*_*ton 6

您可以使用此condition任务.可用的条件,值得注意的os这里.

它的工作方式与'os family'相同:

<condition property="isSnowLeopard">
    <os family="mac" version="10.6.6" />
</condition>
Run Code Online (Sandbox Code Playgroud)

但这意味着您必须输入增量版本号 - 版本字符串必须完全匹配.

对于'模糊'替代方案,你可以使用matches条件,也许这样

<condition property="isSnowLeopard">
    <matches string="${os.version}" pattern="^10.6." />
</condition>
Run Code Online (Sandbox Code Playgroud)

当OSX Lion出现时,您可能希望像这样扩展模式:

<condition property="isSnowLeopardOrGreater">
    <matches string="${os.version}" pattern="^10.[67]." />
</condition>
Run Code Online (Sandbox Code Playgroud)

或者单独检查10.7.