2013-09-26 14 views
14

Maven permette di attivare alcuni profili di build basate sulla famiglia di sistema operativo che gira su, ad esempio:Valori per os.family in Maven condizioni profilo di attivazione

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

C'è un certo numero di domanda intorno a questo: che cosa sono ammessi i valori per os.family? Sono sensibili al maiuscolo/minuscolo? Linux si presenta come Unix? O unix? E così via.

Dove posso trovare informazioni sui valori consentiti – o, almeno, da dove viene Maven prendere questi valori da? Variabili ambientali?

risposta

19

I valori sono definiti nel progetto plexus-utils, in Os.java. Si può vedere in isOs che la partita è case-insensitive, che il valore è preso da System.getProperty("os.name") e che si dovrebbe specificare unix per abbinare una piattaforma Linux.

10
valori della famiglia

OS:

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

Altro valore che si può ottenere dalla esecuzione del programma semplice:

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

Un comando molto utile Maven per il controllo di queste proprietà del sistema operativo sul computer:

mvn enforcer:display-info 

Esempio di output su 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 

uscita Esempio su 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 
+0

Questo è anche il [modo suggerito] (http: //maven.apache .org/guide/introduzione/introduzione-to-profiles.html) da Apache, che collega a [questa pagina plug-enforcer] (http://maven.apache.org/enforcer/enforcer-rules/requireOS.html) attualmente. –

2

esso potrebbe pena chiedere aiuto da Maven:

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

Questo è quello che mi serviva per identificare la variabile '$ {os.detected.name}' di cui avevo bisogno. – Fred