2013-09-26 2 views
14

Maven позволяет активировать определенные профили сборки на основе операционной системы семейства она работает на, например:Значение os.family в Maven состоянии активации профиля

<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

Очень полезная команда 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) от Apache, который в настоящее время ссылается на [эту страницу плагина для пользователя] (http://maven.apache.org/enforcer/enforcer-rules/requireOS.html). –

2

это может стоит спросить с Maven помощью:

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

Это то, что мне нужно, чтобы определить переменную '$ {os.detected.name}', которая мне нужна. – Fred

Смежные вопросы