Значения для os.family в состоянии активации профиля Maven
Maven позволяет активировать определенные профили сборки на основе семейства ее операционной системы, например:
<profile>
<activation>
<os><family>Windows</family></os>
</activation>
</profile>
В этом вопросе есть ряд вопросов: что такое допустимые значения для os.family
? Они чувствительны к регистру? Линукс встречается как Unix
? Или Unix
? И так далее.
Где я могу найти информацию о допустимых значениях – или, по крайней мере, где Maven принимает эти значения? Переменные среды?
Ответы
Ответ 1
Значения определены в проекте plexus-utils
, в Os.java
. Вы можете видеть в isOs
, что совпадение не зависит от регистра, что значение берется из System.getProperty( "os.name" )
и что вы должны указать unix
для соответствия платформе Linux.
Ответ 2
Значения семейства ОС:
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"));
}
}
Ответ 3
Очень полезная команда 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
Ответ 4
возможно, стоит обратиться за помощью к maven:
mvn help:system | grep "os\."