我有一套嵌套的Ant構建文件,我需要控制哪些屬性由每個「子」任務繼承。我試圖將這些定義爲propertysets(以使代碼易於管理),但這些不是由子任務繼承的,與屬性不同。嵌套任務的Ant屬性集繼承
下面的例子演示了問題,foo.*
被複制到中間的項目,但不是底部項目。如果我將每個屬性定義爲明確繼承,如bar.*
,則它們也會由底部項目繼承。
有沒有什麼辦法讓一組屬性的繼承一路下滑,以同樣的方式獨立屬性呢?在不重寫子流程的情況下,還有什麼我可以嘗試的?
[top.xml]
<?xml version="1.0"?>
<project name="test-top">
<property name="foo.1" value="1"/>
<property name="foo.2" value="2"/>
<property name="bar.1" value="1"/>
<property name="bar.2" value="2"/>
<ant antfile="middle.xml" inheritall="false">
<propertyset>
<propertyref prefix="foo."/>
</propertyset>
<property name="bar.1" value="${bar.1}"/>
<property name="bar.2" value="${bar.2}"/>
</ant>
</project>
[middle.xml]
<?xml version="1.0"?>
<project name="test-middle">
<echo>foo ${foo.1} ${foo.2}</echo>
<echo>bar ${bar.1} ${bar.2}</echo>
<ant antfile="bottom.xml" inheritall="false"/>
</project>
[bottom.xml]
<?xml version="1.0"?>
<project name="test-bottom">
<echo>foo ${foo.1} ${foo.2}</echo>
<echo>bar ${bar.1} ${bar.2}</echo>
</project>
[螞蟻-f top.xml輸出]
[echo] foo 1 2
[echo] bar 1 2
[echo] foo ${foo.1} ${foo.2}
[echo] bar 1 2
感謝馬丁和亞歷山大。 我已經不知道如何編寫屬性的文件,但還沒有看到任何方式做到這一點不明確重新上市,我想傳下去(的所有屬性,即,沒有比'欄更好的解決方案。*上面的' )。我錯過了「echoproperties」任務,因爲它在Ant文檔中被列爲「可選任務」而不是「核心任務」...現在我知道了! – 2010-08-27 10:28:58