2013-09-26 88 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

相關問題