2009-10-19 2 views
7

In Ameise wollen, wenn mehr als ein Ziel auszuführen, wir es so,Ist es möglich, einige Ziele von Ant-Zielen auszuschließen, während das Skript ausgeführt wird?

ant target1 target2 target3 

Andere Art und Weise könnte sein, schaffen target4 wie

<target name="target4" depends="target1,target2,target3" /> 

aber das Problem ist, mein man tun kann Zieldefinition ist:

<target name="buildApp" depends="init,copy-all-requiredfiles-local,wait-to-merge,compile,createWAR,deployAll"/> 

und wenn ich BUILDAPP ausführen wollen, dann wird es alle damit verbundenen Ziele laufen auch so offensichtlich. Ist es möglich, das BuildApp Ziel auszuführen, ohne deployAll Ziel auszuführen?

+1

Ihre Ziele und Abhängigkeiten sind interessant. Ich würde denken, deployAll hat eine Abhängigkeit von BuildApp und nicht umgekehrt. –

Antwort

14

Eine Möglichkeit, um eine Bedingung zu Ihrem deployall Ziel wie folgt hinzufügen würde.

<target name="depolyAll" unless="doNotDeploy"> 
... 
</target> 

Dann, wenn Sie BUILDAPP ohne deployall auf der Kommandozeile ausgeführt werden soll tun, nur

ant -DdoNotDeploy=true buildAll 

btw. Beachten Sie, dass Sie nur überprüfen, ob die Eigenschaft festgelegt ist. Nicht was der Wert ist.

Aber dieses Verhalten sollte dokumentiert werden und ist ein wenig obskur.

Ich würde erwägen, explizit ein zweites Build-Ziel z. buildAllWithoutDeploy die das Bereitstellungsziel knapp verfehlt

+0

+1 fot * es sei denn * Sache. :) –

2

Warum nicht ein anderes Ziel dafür erstellen?

<target name="buildAppNoDeploy" depends="init,copy-all-requiredfiles-local,wait-to-merge,compile,createWAR"/> 
+0

sicherlich kann ich ein anderes Ziel erstellen, aber ich habe dies nicht erwartet. :) –

Verwandte Themen