2013-09-26 44 views
14

的Maven允许激活基于其上运行的操作系统家族的某些创建个人资料,例如:值在Maven的配置文件的激活条件os.family

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

有许多解决这个问题:什么是否允许os.family的值?他们是否区分大小写? Linux遇到Unix?或者unix?等等。

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

回答

19

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

10

OS的家庭价值观:

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")); 
    } 
} 
10

为您的机器上检查这些OS特性非常有用的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 
+0

这也是[推荐方式(HTTP://maven.apache .org/guides/introduction/introduction-to-profiles.html),它链接到[此执行者插件页面](http://maven.apache.org/enforcer/enforcer-rules/requireOS.html)。 –

2

它可能值得行家不禁要问:

mvn help:system | grep "os\." 
+0

这是我需要识别我需要的变量'$ {os.detected.name}'。 – Fred

相关问题