PropertyHelper

自 Ant 1.8.0 起

描述

此任务旨在允许用户 **(a)** 在运行时安装不同的 PropertyHelper,或 **(b)**(希望更常见)将一个或多个 PropertyHelper 代理安装到当前 Project 上活动的 PropertyHelper 中。这是一种比较高级的 Apache Ant 使用方式,假设您熟悉现代 Ant API。有关更多信息,请参阅 Ant 的 属性助手 的描述。

作为嵌套元素指定的参数

PropertyHelper

您可以指定一个配置好的 org.apache.tools.ant.PropertyHelper 实例。

PropertyHelper.Delegate

您可以指定一个或多个配置好的 org.apache.tools.ant.PropertyHelper.Delegate 接口实现,无论是否与新的 PropertyHelper 结合使用。但是,这里需要更深入地了解 API,因为 Delegate 只是一个标记接口:嵌套参数必须实现 Delegate 子接口才能执行有意义的操作。

delegate

还提供了一个可以使用项目引用的通用 <delegate> 元素

参数
属性 描述 必需
refid 要安装的 PropertyHelper.Delegateid

示例

安装一个完全不同的 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>