Ant wenn sonst Bedingung?
Ist es eine if/else-Bedingung, die ich verwenden kann für einen Ant-task?
Dies ist, was ich bisher geschrieben haben:
<target name="prepare-copy" description="copy file based on condition">
<echo>Get file based on condition</echo>
<copy file="${some.dir}/true" todir="." if="true"/>
</target>
Dem obigen Skript wird in die Datei kopieren, wenn eine Bedingung wahr ist. Was ist, wenn die Bedingung false ist, und ich möchte die Kopie einer anderen Datei? Ist das möglich in Ant?
Konnte ich übergeben Sie einen Parameter, um die oben angegebene Aufgabe und stellen Sie sicher, dass die param übergeben wird
InformationsquelleAutor der Frage jonney | 2013-01-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
if
Attribut existiert nicht für<copy>
. Es sollte angewendet werden, um die<target>
.Unten ist ein Beispiel, wie Sie können, verwenden Sie die
depends
- Attribut ein Ziel und dieif
und, wenn
- Attribute zur Steuerung der Ausführung von abhängigen Ziele. Nur eine der beiden ausgeführt werden soll.Wenn Sie mit Hilfe von ANT-1.8+, dann kann man über die Eigenschaft der expansion und es wird eine Bewertung der Wert der Eigenschaft zu bestimmen, die den booleschen Wert. So könnten Sie
if="${copy-condition}"
stattif="copy-condition"
.ANT 1.7.1 und früher, geben Sie den Namen der Eigenschaft. Wenn die Eigenschaft definiert ist und einen Wert hat (auch eine leere Zeichenkette), dann wird es zu true ausgewertet werden.
InformationsquelleAutor der Antwort Mads Hansen
Können Sie dies auch tun, mit ant contrib ist, wenn Aufgabe.
InformationsquelleAutor der Antwort David
Der eigenwilligen syntax, Bedingungen auf dem Ziel (beschrieben von Mads) ist die einzige unterstützte Methode für die Durchführung der bedingten Ausführung in Kern-ANT.
ANT ist keine Programmiersprache, und wenn die Dinge kompliziert ich wählen Sie einbetten ein script in meine bauen sich wie folgt:
ANT unterstützt mehrere Sprachen (Siehe Skript Aufgabe), ist meine Vorliebe Grooviger, weil es die knappe syntax, und da spielt es so gut mit dem bauen.
Entschuldige bitte, David, ich bin kein fan von ant-contrib.
InformationsquelleAutor der Antwort Mark O'Connor
Da ant 1.9.1 können Sie verwenden, wenn: - set-Zustand : https://ant.apache.org/manual/ifunless.html
InformationsquelleAutor der Antwort Vincent Rich
In meinem Fall
DPARAM_BUILD_TYPE=Debug
wenn er geliefert wird, als ich brauchen, um zu bauen für Debug-sonst muss ich gehen für Gebäude Release-build.Ich Schreibe wie oben Zustand es hat funktioniert und ich habe getestet, wie unten es ist in Ordnung für mich.
Und Eigentum
${build.type}
dann können wir auch dies andere Ziel-oder macrodef für die Verarbeitung, die ich Tue in meine anderen ant macrodef.Es Arbeit für mich zu implementieren Zustand so gepostet, hoffe, es wird hilfreich.
InformationsquelleAutor der Antwort Laxman G