27

Maven 允许根据其运行的操作系统系列激活某些构建配置文件,例如:

<profile>
    <activation>
        <os><family>Windows</family></os>
    </activation>
</profile>

围绕这个问题有很多问题:那么允许的值是os.family多少?它们区分大小写吗?Linux 会被视为Unix吗?或者unix?等等。

我在哪里可以找到有关允许值的信息——或者,至少,Maven 从哪里获取这些值?环境变量?

4

4 回答 4

28

这些值在plexus-utils项目中定义,在Os.java. 您可以看到匹配不区分大小写isOs该值取自,System.getProperty( "os.name" )并且您应该指定unix以匹配 Linux 平台。

于 2013-09-26T14:35:19.257 回答
23

一个非常有用的 Maven 命令,用于检查您机器上的这些操作系统属性:

mvn enforcer:display-info

SunOS / Sparc 主机上的示例输出:

[INFO] Maven Version: 3.0.4
[INFO] JDK Version: 1.6.0_34 normalized as: 1.6.0-34
[INFO] OS Info: Arch: sparc Family: unix Name: sunos Version: 5.8

Linux 主机上的示例输出:

[INFO] Maven Version: 3.0.4
[INFO] JDK Version: 1.7.0_85 normalized as: 1.7.0-85
[INFO] OS Info: Arch: amd64 Family: unix Name: linux Version: 2.6.32-504.23.4.el6.x86_64
于 2015-10-26T07:54:15.130 回答
22

操作系统系列价值观:

dos
mac
netware
os/2
tandem
unix
windows
win9x
z/os
os/400
openvms

您可以通过运行简单程序获得的其他值:

public class SystemProperties {
    public static void main(String[] args) {
        System.out.println("Os name: " + System.getProperty("os.name"));
        System.out.println("Os arch: " + System.getProperty("os.arch"));
        System.out.println("Os version: " + System.getProperty("os.version"));
    }
}
于 2014-10-23T13:36:31.820 回答
6

可能值得向 maven 求助:

mvn help:system | grep "os\."
于 2016-01-08T01:32:01.263 回答