Ant属性
Ant属性是可以在Ant构建脚本中配置的关键值对。通常,我们将属性用于需要在Ant构建脚本中多次引用的值。例如,Java代码的源目录或者构建输出目录。
定义一个Ant属性
我们可以使用property
元素定义一个Ant属性。这是一个Ant属性示例:
<project name="MyProject"> <property name="dir.src" value="src"/> </project>
注意project
元素内的property
元素。 " property"元素运行Ant属性任务,该任务设置一个可以在整个Ant构建脚本中引用的全局属性。
Ant属性元素的name属性包含该属性的名称。 value属性包含Ant属性的值。
我们还可以在property
元素的主体内指定Ant属性的值。这是另一个显示该方法的Ant属性示例:
<property name="dir.src">src</property>
我们使用哪个版本取决于我们。
引用Ant属性
我们可以使用$ {propertyName}
代码来引用Ant属性。代码的" propertyName"部分应该是我们要引用的Ant属性的名称。该Ant属性的值将插入在$$ ...代码的位置。这是一个Ant属性参考示例:
<project name="MyProject"> <property name="dir.build" value="build"/> <property name="dir.build.classes" value="${dir.build}/classes"/> </project>
此示例首先定义一个名为dir.build
的属性,其值设置为build
。假设build
是此Ant构建脚本使用的根构建输出目录的名称。
其次,该示例定义一个名为dir.build.classes
的属性,其值设置为$ {dir.build} / classes
。当Ant定义此属性时,它将解析引用的属性dir.build
的值,并将其值插入该属性为引用的位置。因此,定义的第二个Ant属性将其最终值设置为" build / classes",因为" build"是所引用的" dir.build"属性的值。
Ant属性是不可变的
一旦定义了Ant属性,就不能更改它(作为一般经验法则)。可以说,蚂蚁的属性是不可变的。
Ant属性是全局的
一旦定义了Ant属性,就可以在整个Ant构建脚本中对其进行访问。可以说,Ant属性是全局性的。
放置Ant属性的位置
在前面显示的示例中,属性是在project元素内部定义的,是project元素的直接子元素(在构建脚本的"顶层")。这使得可以为构建脚本中的所有目标定义Ant属性。
我们也可以将属性定义放在目标定义中。然后,仅在执行该目标时才定义属性。这是在Ant目标中放置Ant属性的示例:
<project name="MyProject"> <target name="init"> <property name="dir.build" value="build"/> <property name="dir.build.classes" value="${dir.build}/classes"/> </target> </project>
这个例子首先定义了一个名为" init"的目标。在此目标内部定义了两个属性。只有执行了init
目标,这些属性才被定义。即使在目标中定义,这些Ant属性在创建后将在构建脚本中全局可用。