如何在 Ant 中声明和使用属性

Ant 提供了一些内置属性

属性名称
BASEDIR 项目基础的绝对路径
ant.file 构建文件的绝对路径。
ant.version Ant 的版本
ant.project.default 目标 当前正在执行的项目的默认目标的名称
ant.project.name 项目名称
ant.java.version 检测到 JVM 版本 Ant

在此示例中,我们将创建自定义 ant 属性并使用它们来创建临时目录并在其中复制文件。

  1. 在同一文件中声明的属性。
<project name="Test Project for Ant" default="init">
    <property name="temp.dir" value="${basedir}/temp" />

    <target name="init" description="initialize">
        <mkdir dir="${temp.dir}" />
        <copy file="${basedir}/test.xml" todir="${temp.dir}/" />
    </target>
</project>

在 Ant 中,$ {basedir}将引用基本位置或 ant 文件所在的位置。在这里,我声明了一个名为的属性

temp.dir

这将引用 basedir / temp 位置。

因此,我们调用 target init 它将用它的实际值替换占位符$ {temp.dir}并开始执行我们的脚本。此目标将在基本目录 copy test.xml 文件下创建名为 temp 的目录到 temp 目录。

  1. 在不同文件中声明的属性。

在这个例子中,我们将引用在不同文件中声明的属性。这是一个包含应用程序版本的示例文件(app_version.xml)。

<project name="Project Properties">
     <property name="app.version" value="1.0" />
</project>

要包含此文件,我们将添加 import ant 任务以在执行 ant 目标时导入此文件。

<import file="app_version.xml" />

上面的代码看起来像

<project name="Test Project for Ant" default="init">
<import file="app_version.xml" />
<property name="temp.dir" value="${basedir}/temp" />

<target name="init" description="initialize">
    <mkdir dir="${temp.dir}" />
    <copy file="${basedir}/test.xml" todir="${temp.dir}/" />
    <echo message="App version is:${app.version}" />
</target>

导入文件后,可以通过属性名称(app.version)直接访问该文件。

我使用 .xml 文件,相同的用例也适用于 .properties 文件。