Maven配置文件激活条件中os.family的值

MaD*_*aDa 18 environment-variables maven maven-profiles

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

<profile>
    <activation>
        <os><family>Windows</family></os>
    </activation>
</profile>
Run Code Online (Sandbox Code Playgroud)

围绕这个问题有很多问题:当时允许的值是os.family多少?他们是否区分大小写?Linux会遇到Unix吗?还是unix?等等.

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

Joe*_*Joe 23

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


dok*_*par 16

一个非常有用的Maven命令,用于检查计算机上的这些OS属性:

mvn enforcer:display-info
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)


bur*_*vyg 15

OS系列值:

dos
mac
netware
os/2
tandem
unix
windows
win9x
z/os
os/400
openvms
Run Code Online (Sandbox Code Playgroud)

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

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"));
    }
}
Run Code Online (Sandbox Code Playgroud)


Kia*_*far 6

可能值得向 maven 求助:

mvn help:system | grep "os\."
Run Code Online (Sandbox Code Playgroud)