2009-10-19 7 views
7

W mrówka jeśli chcesz wykonać więcej niż jeden cel, możemy zrobić to w ten sposób,Czy można wykluczyć niektóre cele z celów Ant podczas wykonywania skryptu?

ant target1 target2 target3 

Innym sposobem może być, tworzyć target4 jak

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

ale problemem jest to jeden z moich definicja celem jest:

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

i jeśli chcę wykonać buildApp wtedy będzie uruchomić wszystkie cele związane też, tak oczywiste. Czy jest możliwe wykonanie docelowego obiektu buildApp bez wykonywania docelowego deployAll?

+1

Twoje cele i zależności są interesujące. Myślę, że deployAll ma zależności od buildApp, a nie na odwrót. –

Odpowiedz

14

Możliwość byłoby dodać warunek do deployAll cel takiego.

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

Potem, gdy chcesz uruchomić buildApp bez deployAll w linii poleceń, po prostu zrób

ant -DdoNotDeploy=true buildAll 

btw. zauważ, że chyba tylko sprawdza, czy właściwość jest ustawiona. Nie jest to wartość.

Ale to zachowanie powinno być udokumentowane i jest trochę niejasne.

Zastanowiłbym się wyraźnie nad utworzeniem drugiego celu kompilacji, np. buildAllWithoutDeploy po prostu pomija cel wdrożenia

+0

+1 fot * chyba, że ​​* rzecz. :) –

2

Dlaczego nie utworzyć kolejnego celu?

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

z pewnością mogę utworzyć kolejny cel, ale nie spodziewałem się tego. :) –

Powiązane problemy