自 Ant 1.8.0 起
此任务旨在允许用户 **(a)** 在运行时安装不同的 PropertyHelper
,或 **(b)**(希望更常见)将一个或多个 PropertyHelper
代理安装到当前 Project
上活动的 PropertyHelper
中。这是一种比较高级的 Apache Ant 使用方式,假设您熟悉现代 Ant API。有关更多信息,请参阅 Ant 的 属性助手 的描述。
您可以指定一个配置好的 org.apache.tools.ant.PropertyHelper
实例。
您可以指定一个或多个配置好的 org.apache.tools.ant.PropertyHelper.Delegate
接口实现,无论是否与新的 PropertyHelper
结合使用。但是,这里需要更深入地了解 API,因为 Delegate
只是一个标记接口:嵌套参数必须实现 Delegate
子接口才能执行有意义的操作。
还提供了一个可以使用项目引用的通用 <delegate>
元素
属性 | 描述 | 必需 |
---|---|---|
refid | 要安装的 PropertyHelper.Delegate 的 id。 |
是 |
安装一个完全不同的 PropertyHelper
实现(假设 MyPropertyHelper 扩展了 PropertyHelper
)
<componentdef classname="org.example.MyPropertyHelper" name="mypropertyhelper"/> <propertyhelper> <mypropertyhelper/> </propertyhelper>
添加一个新的 PropertyEvaluator
代理(假设 MyPropertyEvaluator 实现 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>