Sembra che l'ANT <condition>
può testare per il nome, la famiglia & versione del sistema operativo:
In base a questo link, ci sono alcune proprietà relative al sistema operativo che possiamo query. Uno è il normale family
immobili utilizzati nel codice comune:
<!-- CHECK FOR WINDOWS FAMILY OS -->
<condition property="is_windows">
<os family="windows"/>
</condition>
La mia versione di ANT non stampare un valore risolto per ${os.family}
.
C'è anche:
- os.name < --- questo è quello che è necessario controllare
- os.arch
- os.version
Ecco uno script demo che ho fatto per mostrare l'uso di queste proprietà:
<?xml version="1.0" encoding="UTF-8"?>
<project name="Test" default="build" >
<!-- CHECK FOR WINDOWS FAMILY OS -->
<condition property="is_windows">
<os family="windows"/>
</condition>
<condition property="is_windows_7">
<os name="Windows 7"/>
</condition>
<!-- DISPLAYS WINDOWS OS -->
<target name="display_windows" if="is_windows" >
<echo message="OS Family is: Windows" />
</target>
<target name="build" >
<antcall target="display_windows" />
<echo message="OS Name is: ${os.name}" />
<echo message="OS Architecture is: ${os.arch}" />
<echo message="OS Version is: ${os.version}" />
</target>
</project>
Dal rispondere a questa domanda, il codice di cui sopra è stato promosso al nostro sistema produttivo di compilazione, dove sta fornendo funzionalità condivise attraverso Windows & Mac.
@thekbb fatto un buon suggerimento per rimuovere il <antcall target="display_windows" />
, e aggiornare la definizione bersaglio dipendere display_windows
secondo il codice qui sotto:
<target name="build" depends="display_windows">
<echo message="OS Name is: ${os.name}" />
<echo message="OS Architecture is: ${os.arch}" />
<echo message="OS Version is: ${os.version}" />
</target>
Questa basata sul fatto che antcall
lancia una nuova istanza di formica in una nuova JVM. Alcuni utenti potrebbero trovare questa ottimizzazione più facile da capire; altri potrebbero volerlo fare per ragioni di prestazione.
fonte
2012-07-09 10:05:45
possibile duplicato di [Utilizzo di ant per rilevare os e impostare proprietà] (http://stackoverflow.com/questions/453170/using-ant-to-detect-os-and-set-property) – oers
Avevo già verificato che ma quello che voglio fare è controllare che scendessimo è XP, Vista o win7 l'altra opzione ti consente soltanto di sapere se le sue finestre. – Nathan
@ Nathan - Hai avuto fortuna con la mia risposta? Marchio Pls accettato, o lasciatemi un commento in modo che possa aiutare di più.Questa tecnica è utilizzata nel nostro sistema di produzione, ma potrebbe non risolvere * il tuo * problema. –