Czy możliwe jest ustawienie wartości właściwości w Ant plików właściwości (w przeciwieństwie do build.xml
) w sposób warunkowy? Na przykład, jeśli ustawiona jest właściwość apache.root
- w innym przypadku my_property
będzie . Jeśli nie, jaka byłaby powszechna praktyka - pliki wielokrotnego użytku (build.xml
) do ponownego użycia?Właściwość warunkowa w pliku właściwości mrówek
Odpowiedz
Użyj zadanie condition:
<project name="demo" default="run">
<condition property="my_property" value="${apache.root}/myapp" else="/var/www/myapp">
<isset property="apache.root"/>
</condition>
<target name="run">
<echo message="my_property=${my_property}"/>
</target>
</project>
Możesz dołączyć różnych plików własności w oparciu o środowiskach lub zmiennych warunkowych. Na przykład
<echo>Building ${ant.project.name} on OS: ${os.name}-${os.arch}</echo>
<property file="build-${os.name}.properties" />
obejmowałoby to plik o nazwie „build-Okna 7.properties” lub „build-Linux.properties” w zależności od miejsca budowy jest bycie run. Oczywiście dyrektywa właściwości znajduje się w bieżącym katalogu, a także w katalogu domowym. Tak więc plik właściwości może być częścią źródła kompilacji lub w katalogu domowym konta kompilacji.
Można użyć tagu warunek, aby wygenerować część nazwy pliku właściwości, jak również wybrać
jedną z najprostszych postaci warunku można użyć to:
<exec executable="hostname" outputproperty="hostname"/>
<condition property="python" value="/usr/bin/python3.4">
<equals arg1="${hostname}" arg2="host0"/>
</condition>
<property name="python" value="/usr/bin/python"/>
pomieścić inny ścieżka instalacji pythona na przykład. Tutaj domyślną ścieżką instalacji jest/usr/bin/python z wyjątkiem host0, gdzie to /usr/bin/python3.4
OP pytał o plik właściwości, a nie w pliku kompilacji ant. Niestety nie można wykonać warunków warunkowych z pliku właściwości. Co możesz zrobić, to mieć oddzielne pliki właściwości dla każdego zestawu zależnych właściwości. Na przykład:
build.xml
<condition property="app.name" value="appA">
<equals arg1="${appName}" arg2="A" />
</condition>
<condition property="app.name" value="appB">
<equals arg1="${appName}" arg2="B" />
</condition>
<property file="${app.name}.properties" />
<!-- since properties are immutable, set your defaults here -->
<property name="apache.root" value="/var" />
<property file="restOfProps.properties" />
appA.properties
apache.root=/appA
restOfProps.properties
my_property=${apache.root}/myapp
- 1. Przechodząc właściwości systemowe Java do testów mrówek
- 2. Maven: ustaw właściwość w pom.xml z pliku właściwości
- 3. Identyfikator właściwości WiX lub instrukcja warunkowa
- 4. Instrukcja warunkowa w konfiguracji Spring
- 5. Mule 3.3.0 - właściwość globalna nie jest usuwana z pliku właściwości
- 6. polecenia są ignorowane po komendzie mrówek w pliku wsadowym
- 7. Jak zanegować właściwość w pliku pom.xml?
- 8. użycie zaćmienie ścieżka klasy w mrówek zadań
- 9. Analiza wizualna mrówek?
- 10. Czy można określić wartość właściwości jako właściwość w ant?
- 11. Kompilacja warunkowa w Scali
- 12. Funkcja warunkowa w APL
- 13. Aktualizacja warunkowa w SQLite
- 14. Suma warunkowa w PostgreSQL
- 15. Warunkowa aktualizacja w MySql
- 16. Walidacja warunkowa w AngularJS
- 17. Warunkowa wymiana w pandach
- 18. plik mrówek, który zależy od innego pliku mrówki
- 19. Kompilacja warunkowa w dokumencie LaTeX
- 20. Warunkowa ocena nagłówka za pomocą knitr w pliku .Rmd
- 21. Zmienna warunkowa zdefiniowana w pliku Makefile za pomocą ifeq
- 22. Oprawa warunkowa
- 23. Optymalny algorytm lokalizacji kolonii mrówek
- 24. mrówka warunkowa jeśli w ramach makrodefy
- 25. Zabezpieczanie hasła w pliku właściwości
- 26. Czytaj pliku właściwości w powershell
- 27. log4j StringToMatch w pliku właściwości
- 28. Bowers .bower.json właściwość wersji pliku
- 29. Jak umieścić znak nowej linii w nieruchomości mrówek
- 30. Właściwość siatki w jQuery
Dziękuję. Jednak pytałem o pliki 'property', a nie' build.xml'. Lub, jeśli mam rację, czy "stan" to jedyny sposób, aby to się stało? – BreakPhreak
Możesz odczytać plik właściwości w xml kompilacji, a później zdefiniować nową właściwość w oparciu o właściwości ... – Vishal
Chciałbym mieć "kinda" pliki własności wielokrotnego użytku (z warunkami), które będą odczytywane przez kilka 'build.xml 'pliki. Czy zmierzam w złym kierunku? – BreakPhreak