簡體   English   中英

目標覆蓋Ant

[英]Target overriding in Ant

是否有可能從字面上覆蓋目標或以某種方式模擬它?

所以,當我打電話的時候

<target perform-after="release">
     <do-something />
</target>

它會這樣:

<target name="release">
     <antcall target="release" /> <!-- call previous version, not recursion -->
     <do-something /> 
</target>

我認為它有意義,我將在Android示例中描述:

我們為SDK文件夾( {$SDK}/tools/ant/*.xml )中的每個build.xml都有一個.xml模板,這些文件包含在每個項目的每個生成的build.xml中。 只有-pre-compile-pre-build-post-compile目標為空且易於覆蓋。 但是,例如,沒有空的-post-release目標。 Google建議在生成的build.xml注釋中將目標復制粘貼到我自己的build.xml然后進行調整。 但我認為這不好,因為如果Google會在模板中更改此目標中的內容,我將永遠不會知道我使用的是過時的版本。

請參閱導入任務的“目標覆蓋”部分或包含任務的“目標重寫”部分。 簡而言之,給公共build.xml一個項目名稱,如“common”,然后在antcall中使用“common.release”。

我會注意到antcall並不完全相同,因為它在運行時啟動一個新項目,這意味着目標設置的變量以后將不可見。 我沒有在這台機器上測試Ant,但是你可以嘗試這樣的東西來避免使用antcall:

<target name="release" depends="common.release, -post-release"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM