pom perfil mkyong example con compile compilar maven environment-variables maven-profiles

mkyong - Valores para os.family en la condición de activación del perfil de Maven



maven profiles properties example (4)

Maven permite activar ciertos perfiles de compilación basados ​​en la familia de sistemas operativos en los que se ejecuta, por ejemplo:

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

Hay una serie de preguntas en torno a esto: ¿cuáles son los valores permitidos para os.family entonces? ¿Son sensibles a mayúsculas y minúsculas? ¿Linux se presenta como Unix ? O unix ? Y así.

¿Dónde puedo encontrar información sobre los valores permitidos o, al menos, de dónde toma Maven estos valores? ¿Variables de entorno?


Los valores se definen en el proyecto plexus-utils , en Os.java . Puede ver en isOs que la coincidencia no distingue entre mayúsculas y minúsculas, que el valor se toma de System.getProperty( "os.name" ) y que debe especificar unix para que coincida con una plataforma Linux.


Un comando Maven muy útil para verificar estas propiedades del sistema operativo en su máquina:

mvn enforcer:display-info

Ejemplo de salida en un host 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

Ejemplo de salida en un host 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


Valores de la familia OS:

dos mac netware os/2 tandem unix windows win9x z/os os/400 openvms

Otro valor que puede obtener por ejecutar un programa simple:

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


podría valer la pena preguntar de la ayuda de Maven:

mvn help:system | grep "os/."