Wygląda ANT <condition>
można przetestować na imię, rodzina & wersję systemu operacyjnego:
podstawie tego linku, istnieją pewne właściwości dotyczące systemu operacyjnego, że możemy pytanie. Jednym z nich jest normalne family
nieruchomość stosowany we wspólnym kodzie:
<!-- CHECK FOR WINDOWS FAMILY OS -->
<condition property="is_windows">
<os family="windows"/>
</condition>
Moja wersja ANT nie wydrukować rozwiązany wartość ${os.family}
.
Istnieje również:
- os.name < --- to jest jeden trzeba sprawdzić
- os.arch
- os.version
Oto skrypt demo zrobiłem pokazać wykorzystanie tych właściwości:
<?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>
Od odpowiedzi na to pytanie, powyższy kod został awansowany do naszego systemu kompilacji produkcyjna, gdzie jest zapewnienie wspólnej funkcjonalność całej systemu Windows & Mac.
@thekbb wykonany dobra propozycja, aby usunąć <antcall target="display_windows" />
i zaktualizować definicję docelowego zależą display_windows
jak na poniższym kodzie:
<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>
ta opiera się na fakcie, że antcall
uruchamia nową instancję mrówki w nowej maszynie JVM. Niektórzy użytkownicy mogą uznać tę optymalizację za łatwiejszą do zrozumienia; inni mogą chcieć to zrobić ze względu na wydajność.
możliwy duplikat [Używanie mrówki do wykrywania właściwości os i zestawu] (http://stackoverflow.com/questions/453170/using-ant-to-detect-os-and-set-property) – oers
Byłbym już sprawdziłem, ale co chcę zrobić, to sprawdzenie, czy jest to xp, vista lub win7, druga opcja pozwoli ci tylko dowiedzieć się, czy ma okna. – Nathan
@Nathan - czy miałeś szczęście używając mojej odpowiedzi? Oznacz Pls jako zaakceptowany lub wyślij mi komentarz, abym mógł pomóc więcej.Ta technika jest używana w naszym systemie budowania produkcji, ale może nie rozwiązać problemu * Twojego *. –