您的位置:首页 > 其它

认识基础任务标签(下)—ant入门指南(4)

2014-05-25 18:12 369 查看
[align=center]认识基础任务标签(下)—ant入门指南(4)[/align]

5.echo:向ant控制台打印消息

echo在调试ant任务时非常有用,也可以在任务执行后打印一些任务完成提示消息等。

实际上echo也可以把消息打印到指定文件,形成build日志,只需要指定file参数即可。

属性

说明

message

想要打印的消息

file

消息打印到指定文件

append

将消息追加到已经存在的文件

level

指定消息的类型,有”error”, “warning”, “info”, “verbose”, “debug”

来看典型的echo任务代码:

<echo message="Hello, world"></echo>
<echo>Hello, world</echo>
<dirname file="./" property="current.dir"></dirname>
<echo>${current.dir}</echo>


echo打印property属性值,是个非常常用的调试技巧。

上述代码中有个dirname,这个任务是用来做啥的呢?接下去看。

6.dirname:获取文件的目录路径

dirname只有二个参数:

属性

说明

file

文件路径

property

指定属性名称

来看下使用代码:

<project default="build" name="test">
<target name="build"></target>
<dirname file="${ant.file}" property="antfile.dir"></dirname>
<property location="${ant.file}" name="antfile2.dir"></property>
<echo message="${antfile.dir}"></echo>
<echo>${antfile2.dir}</echo>
</project>


ant.file这个属性是系统自带的,为当前运行的构建文件路径。

明河这里将dirname和property进行比较,二者的输出有明显的区别,dirname只输出目录,property输出完成文件路径,如下图







7.available:验证文件、目录、类的存在性

available任务在防止ant构建时因为文件或目录不存在导致的错误时非常有用。

属性

说明

property

属性名

value

属性值,默认为true

file

需要验证的文件

type

file的类型,验证目录(type=”dir”) or 验证文件 (type=”file”)

示例代码

<project default="build" name="test">
<target name="build"></target>
<dirname file="${ant.file}" property="antfile.dir"></dirname>
<property location="${antfile.dir}/ui.js" name="ui"></property>
<available property="is" type="file" file="${ui}"></available>
<echo>${is}</echo>
</project>


available的value值永远为一个布尔值。

8.get:从url中获取文件

get用于快速将远程文件保存到指定位置,不止支持http:协议,ftp:,jar:也都是可以的。

属性

说明

src

源url

dest

目标路径

verbose

是否显示下载进度(100 Kb显示一个“.”)

usetimestamp

显示最后修改时间

username

‘BASIC’验证页面的用户名

password

‘BASIC’验证页面的密码

来看个demo代码:

<project default="build" name="test">
<target name="build"></target>
<dirname file="${ant.file}" property="antfile.dir"></dirname>
<get usetimestamp="true" verbose="true" dest="${antfile.dir}/36ria-index.html" src="http://www.36ria.com/"></get>
</project>


运行后,如下图:





如果要把一批url保存下来该如何处理呢?

<get dest="downloads">
<url url="http://ant.apache.org/index.html"/>
<url url="http://ant.apache.org/faq.html"/>
</get>


9.local:增加个局部属性

为了更好说明local用法,明河先贴出demo代码:

<property value="foo" name="foo"></property>
<target name="step1">
<echo>Before local: foo is ${foo}</echo>
<local name="foo"></local>
<property value="bar" name="foo"></property>
<echo>After local: foo is ${foo}</echo>
</target>
<target name="step2" depends="step1">
<echo>In step2: foo is ${foo}</echo>
</target>


上述代码会输出如下内容:



在step1目标中我们定义了,类似编程语言中的局部变量,改变后foo的输出值为bar,不再是原来定义的foo,有意思的是原来的值不会发生改变,step2目标验证了这一点。也就是说在step1内部定义了local 后,foo这个property的修改不会影响外部property的值。

local这个任务在sequential(循环)中非常常用,讲到sequential时再演示其用法。

10.touch:创建文件,并可以修改文件修改时间

属性

说明

file

文件名称

datetime

指定文件修改时间

创建一个myfile文件,最后修改时间为当前时间。

<touch file="myfile"></touch>


创建一个myfile文件,最后修改时间为18/10/2010 2:02 pm。

<touch datetime="18/10/2010 2:02 pm" file="myfile"></touch>


转自:http://www.36ria.com/4534
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: