2009-10-19 20 views
7

在螞蟻,如果要執行一個以上的目標,我們可以像這樣做,在執行腳本時,是否可以從Ant目標中排除一些目標?

ant target1 target2 target3 

其他方式可能是,創建target4像

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

但問題是,我的一個目標的定義是:

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

如果我想執行BUILDAPP然後它會運行的所有相關指標太明顯了。 是否有可能執行buildApp目標而不執行deployAll target?

+1

您的目標和依賴關係很有趣。我認爲deployAll對buildApp有依賴性,而不是相反。 –

回答

14

一個可能性是增加一個條件,你deployAll目標是這樣的。

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

然後,當你想在命令行運行BUILDAPPdeployAll只是做

ant -DdoNotDeploy=true buildAll 

BTW。請注意,除非只是檢查屬性是否設置。不是什麼值。

但是這種行爲應該被記錄並且有點模糊。

我會考慮明確地創建第二個構建目標,例如, buildAllWithoutDeploy這只是錯過了部署目標

+0

+1 fot *除非*事情。 :) –

2

爲什麼不爲它創建另一個目標?

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

當然,我可以創建另一個目標,但我並不期待這一點。 :) –

相關問題