自 Ant 1.8.0 起
提供此任務,目的是允許使用者(a) 在執行期間安裝不同的 PropertyHelper
,或(b) (希望更常使用) 將一個或多個 PropertyHelper
委派安裝到目前 Project
上作用中的 PropertyHelper
。這是進階的 Apache Ant 用法,並假設使用者熟悉現代 Ant API。請參閱 Ant 的 Property Helper 說明,以取得更多資訊。
您可以指定一個已設定的 org.apache.tools.ant.PropertyHelper
實例。
您可以指定一個或多個 org.apache.tools.ant.PropertyHelper.Delegate
介面的已設定實作,無論是否與新的 PropertyHelper
結合使用。不過,在此需要更深入了解 API,因為 Delegate
僅為標記介面:巢狀引數必須實作 Delegate
子介面,才能執行任何有意義的動作。
也提供一個通用 <delegate>
元素,可使用專案參考
屬性 | 說明 | 必要 |
---|---|---|
refid | 要安裝的 PropertyHelper.Delegate 的 id。 |
是 |
安裝完全不同的 PropertyHelper
實作 (假設 MyPropertyHelper extends PropertyHelper
)
<componentdef classname="org.example.MyPropertyHelper" name="mypropertyhelper"/> <propertyhelper> <mypropertyhelper/> </propertyhelper>
新增一個新的 PropertyEvaluator
委派 (假設 MyPropertyEvaluator implements PropertyHelper.PropertyEvaluator
)。請注意,PropertyHelper
會依 LIFO 順序使用已設定的委派。即,此任務新增的委派會在任何先前定義的委派之前被諮詢,特別是在內建委派之前。
<componentdef classname="org.example.MyPropertyEvaluator" name="mypropertyevaluator"/> <propertyhelper> <mypropertyevaluator/> </propertyhelper>
使用 refid 語法新增一個新的 PropertyEvaluator
委派
<typedef classname="org.example.MyPropertyEvaluator" name="mypropertyevaluator"/> <mypropertyevaluator id="evaluator"/> <propertyhelper> <delegate refid="evaluator"/> </propertyhelper>