读书人

ant 两则技艺

发布时间: 2012-07-05 07:59:18 作者: rapoo

ant 两则技巧

?

??<filter?token="?log4j.logger"?value="INFO"/>ant 两则技艺??<copy?todir="${dest.dir}"?filtering="true">ant 两则技艺????<fileset?dir="${src.dir}"/>ant 两则技艺??</copy>ant 两则技艺

这段脚本的意思就是在 src.dir 目录下的所有文件中,如果有预先定义好的"@log4j.logger@"占位符的话,在拷贝到 dest.dir 目录后,所有的占位符都被替换成了"INFO"。

你也可以将所有被替换的值放到某个属性文件中,filter 任务将属性文件中的每一个条目读出来并且设置成一个 Filter。如下所示:

?<filter?filtersfile="deploy_env.properties"/>ant 两则技艺??<copy?todir="${dest.dir}"?filtering="true">ant 两则技艺????<fileset?dir="${src.dir}"/>ant 两则技艺??</copy>ant 两则技艺

上面的脚本表示所有在 deploy_env 中出现的条目将被作为一个 filter,在拷贝到 dest.dir 目录后,所有 src.dir 目录中存在的占位符将被替换成 deploy_env 中的值。具体的例子可以参见随本文附带的 deploy.xml, deploy_env.properties 和 Test.properties。

其中 deploy.xml 是 ant 脚本,deploy_env.properties 中包含所有要替换的值,在 Test.properties 中是包含有占位符的资源文件。

?

<replaceregexp?byline="true">ant 两则技艺<regexp?pattern="正则表达式"/>ant 两则技艺<substitution?expression="将要替换的值"/>ant 两则技艺<fileset?dir="${unpack.war.dir}/WEB-INF"?includes="web.xml"/>ant 两则技艺</replaceregexp>ant 两则技艺

byline 属性用来确认被替换的时候是一次替换一行还是多行;pattern 属性用来指明正则表达式;substitution expression 中是替换的值,替换的值都定义在相对应的配置文件中;fileset 属性中的 dir 用来指定被替换文件所在的目录,includes 用来指定要替换哪个文件。需要注意的是,如果在正则表达式或者替换的值中出现"<"的话,需要用转义符"<"。

在 Eclipse3.1 中已经内置了对正则表达式的支持;但是如果你在命令行中运行需要正则表达式支持的脚本的话,则需要自己将正则表达式的包下载下来加到 classpath 中。在随文章的 deploy.xml 中提供了一个简单的替换属性文件的值的例子。正则表达式的例子可以在本文所带的 deploy.xml 中找到。

不过还是要谢谢你的辛苦咯

读书人网 >软件架构设计

热点推荐