ant tstamp详解
Ant通过命令行来设置属性
* 控制构建过程 可以通过在控制台上预先制定一个预构建基础的方式来进行。- 例如,你可能会在一个单独的构建过程中试验一个新的版本的类库文件时候可用。
- 你可能想要部署的过程中指定一个密码。
* Ant一共提供了两种在控制台下设置属性的方法:
- -D
- -propertyfile
* 在控制台下设置的属性是不可能被修改的,即使使用的是<available>或<condition>
使用一个不同版本的类库进行构建的例子
* 首先让构建文件包含了一个任务
<property name="lib_jar" location="lib/library.jar"/>以上的步骤设置了属性lib_jar到一个本地的压缩库。
* 在官方的构建文件重新指定之前,我们可以使用下面这个命令行的方式来重新执行一个jar包来替换目前构建文件中使用的值。:
ant -Dlib_jar=C:/newversion/library_new.jar compile
例如,如果newlib.properties文件包含了以下这行
lib_jar=lib/library.jar
,以下这行也得到了执行的话
ant -propertyfile newlib.properties -Dlib_jar=c:/newversion/library.jar compile
,那么通过-D开关设置的lib_jar的值将会被使用,而不是从属性文件中得到的。
也就是说在这种情况下lib_jar的值为c:/newversion/library.jar
通过<tstamp>创建一个构建时间戳
<tstamp>任务的形式非常简单,<tstamp/>它会自动的设置基于当前日期/时间设置如下的3个属性的值
<table>
<tr>
<td>属性</td>
<td>基于当前日期/时间的值格式</td>
</tr>
<tr>
<td>DSTAMP</td>
<td>"YYYYMMDD"</td>
</tr>
<tr>
<td>TSTAMP</td>
<td>"HHMM"</td>
</tr>
<tr>
<td>TODAY</td>
<td>"MONTH DAY YEAR"</td>
</tr>
</table>
<tstamp>任务同样也允许使用任意多个嵌套的<format>元素
<format property="..." pattern="...">
通过定义一个属性,来制定要实现的格式化规则。
例子time-date.xml:
<tstamp>
<format property="buildtime" pattern="yyyy-MM-dd'T'HH:mm:ss"/>
<format property="dayofweek" pattern="EEEE"/>
</tstamp>
<echo message="DSTAMP is ${DSTAMP}"/>
<echo message="TSTAMP is ${TSTAMP}"/>
<echo message="TODAY is ${TODAY}"/>
<echo message="It is ${dayofweek}"/>
<echo message="buildtime is ${buildtime}"/>
E的含义是意思是每周的第几天("day of week");
EEEE意思是长格式,Monday,EEE意思是短格式,Mon.
tstamp.xml
<?xml version="1.0"?><project name="attribute" default="av">
<target name="av">
<tstamp>
<format property="buildtime" pattern="yyyy-MM-dd'T'HH:mm:ss"/>
<format property="dayofweek" pattern="EEEE"/>
</tstamp>
<echo message="DSTAMP is ${DSTAMP}"/>
<echo message="TSTAMP is ${TSTAMP}"/>
<echo message="TODAY is ${TODAY}"/>
<echo message="It is ${dayofweek}"/>
<echo message="buildtime is ${buildtime}"/>
</target></project>