我的問題類似於avoiding-re-building-prerequisites-in-ant,除了我的需要不涉及創建的對象,但調用的過程,所以在那裏討論的解決方案將不適合我。至少我是這麼認爲的 - 但我對螞蟻很陌生。有沒有辦法保證螞蟻依賴只運行一次?
我的情況是,我正在編寫一組螞蟻目標,並且我需要let-call-it 設置目標只執行一次,無論哪個目標被調用。這裏有一個大大簡化的例子:
<?xml version="1.0"?>
<project name="Ant_Test" basedir=".">
<target name="setup">
<echo message="In setup" />
</target>
<target name="do.several" depends="setup">
<echo message="In do.several, calling do.first" />
<antcall target="do.first" />
<echo message="In do.several, calling do.second" />
<antcall target="do.second" />
</target>
<target name="do.first" depends="setup">
<echo message="In do.first" />
</target>
<target name="do.second" depends="setup">
<echo message="In do.second" />
</target>
</project>
我需要設置被精確地調用一次,無論do.several,do.first,或do.second是否被調用。用我上面的天真嘗試,在調用設置三次調用do.several結果。
我想設置一個屬性(我們稱之爲setup.has.been.invoked),並用它來有條件地每個目標中調用設置的,但現在看來,屬性設置僅限於所以如果在設置,我設置setup.has.been.invoked爲true,該值只存在於設置。
我錯過了什麼?是否有一段我跳過的教程或在線文檔?任何指針或提示?
太棒了,謝謝! – CPerkins 2010-01-29 17:55:56
+!爲了擺脫''。 ''讓大衛悲傷...... 99%的時間,''不僅是不必要的,而且也破壞了構建系統的效率。開發人員喜歡使用'',因爲它們用於控制執行順序。一個Ant build.xml文件我們至少調用了每次依賴至少14次。 Ant是一種矩陣依賴語言。你應該只說明每個任務的依賴關係,並讓Ant找出順序。 –
2013-07-01 14:56:29