05、Ant 属性文件

Ant 属性文件

当你只需要对小部分属性进行设置时,可以选择直接在构建文件中设置。然而,对于大项目,最好将设置属性的信息存储在一个独立的文件中。

存储属性信息在一个独立的文件中将会提供以下好处:

  • 它可以让您重复使用相同的构建文件,该文件在不同的执行环境中使用不同的属性设置。例如,构建属性文件在 DEV , TEST , 和 PROD 环境中可以独立地被维护。
  • 当你事先不知道属性的值时(例如,在一个实际的环境中),这样处理是有益的。这样允许你在知道属性值后,在其他环境中执行生成 (build) 操作。

这里没有硬性规定,但是一般情况下,属性文件都被命名为 build.properties, 并且与 build.xml 存放在同一目录层。 你可以基于部署环境 ——比如: build.properties.devbuild.properties.test 创建多个 build.properties 文件。

在下面的例子中展示了 build.xml 文件和与之相联系的 build.properties文件:

build.xml

<?xml version="1.0"?>
<project name="Hello World Project" default="info">

   <property file="build.properties"/>

   <target name="info">
      <echo>Apache Ant version is ${ant.version} - You are at ${sitename} </echo>
   </target>

</project>

build.properties

# The Site Name
sitename=wiki.w3cschool.cn
buildversion=3.3.2

注意到上面的练习中,sitename 是一个自定义属性,执行后映射到一个地址为 “wiki.w3cschool.cn” 的网站上。你可以用这种方式声明任意数量的属性。在上面的例子中,还有一个自定义属性 buildversioin,它表明了当前构建的版本号。

除了以上提到的两个属性, Ant 还提供了其他内置属性,在前一章节中已经提到,但是下面我们再一次给出相关属性。

属性 描述
ant.file 表示 buildfile 的绝对路径。
ant.version 表示 Ant 的版本。
basedir 表示 project 基目录的绝对路径。
ant.jave.version 表示 Ant 检测到的 JDK 的版本。
ant.project.name 表示当前指定的 project 的名字。
ant.project.default-target 表示当前项目的默认目标。
ant.project.invoked-targets 表示被当前项目调用的一系列用逗号分隔开的目标。
ant.core.lib 表示 Ant jar 文件的绝对路径。
ant.home 表示 Ant 安装的根目录。
ant.library.dir 表示 Ant 函数库,一般情况下为 ANT_HOME/lib 文件的根目录。

在这一章节的例子中,我们用到的 Ant 内置属性是 ant.version 属性。