Ant尝鲜手记

Ant这东西上手起来很快,无非就是看看manaul,写写xml. 不过不论学习什么,具体细节过程总会有各种问题.下面是我遇到并解决的小问题(windows环境)
1. ant中怎么使用c操作系统环境变量

主要是用到ant中的env这个值, environment的前三个字符。 使用方法:

 

 
  
< project name ="Build" default ="test" basedir ="." >
< property environment ="env" />
< property name ="SystemRoot.path" value ="${env.SystemRoot}" />
< property name ="ANT_HOME.path" value ="${env.ANT_HOME}" />
< property name ="OS.type" value ="${env.OS}" />
< target name ="test" >
< echo message ="The path of system root: ${SystemRoot.path}" />
< echo message ="The path of ant home: ${ANT_HOME.path}" />
< echo message ="The type of OS: ${OS.type}" />
</ target >
</ project >

 

 

2. ant中怎么调用cmd中的命令

使用<exec executable="cmd">和其参数<arg line="/c ......" />

比如我要用cmd中的方式输出当前的日期和时间:

 

 
  
< project name ="Build" default ="test" basedir ="." >
< target name ="test" >
< exec executable ="cmd" >
< arg line ="/c echo Hi, dude, the date is %date%, and the time is %time%" />
</ exec >
</ target >
</ project >

 

 

3. ant中怎么执行第三方程序

与上面类似, 只不过executable的值换成第三方app地址, 参数line的值换成app需要的参数值

 

4. ant怎么传入参数

ant命令后面这样加参数  ant -DYourArgName=YourArgValue, 就是参数要跟在-D后面, 然后build文件就可以通过 ${YourArgName}使用这个参数了。

比如我要传入两个参数BuildProject.name和BuildProject.info

 

 
  
ant -DBuildProject.name=ATestProject -DBuildProject.info=nothing

 

 

Build文件中就可以这样使用:

 

 
  
< project name ="Build" default ="test" basedir ="." >
< target name ="test" >
< echo message ="The project name is ${BuildProject.name}, and this guy wants to say ${BuildProject.info}" />
</ target >
</ project >

 

5. ant中如何从文件里读取内容

使用ant中的loadfile命令,可以将文件内容读取到一个property中

 

 
  
< project name ="Build" default ="test" basedir ="." >
< target name ="test" >
< loadfile property ="MessageFromFile" srcFile ="ContentInFile.txt" />
< echo message ="${MessageFromFile}" />
</ target >
</ project >

 

 

 

6. ant中如何输出log到文件

如果打算把整个ant执行都输出到Log,请使用ant的 -l 参数

 

 
  
ant -l antlog.log

 

 

如果只是想在ant中输出想输出的信息到log, 请参考第2条

 

 
  
< project name ="Build" default ="test" basedir ="." >
< target name ="test" >
< exec executable ="cmd" >
< arg line ="/c echo print this message to the log>>log.txt" />
</ exec >
</ target >
</ project >

 

7. ant中executable中程序参数中如何使用双引号

正常情况吓死, arg中的值不能直接使用双引号, 否则会出错. 请使用xml中双引号的描述符 &quot;代替

 

小经验: 

1. target的执行逻辑要明细,也就是要组织好我们的target,target量比较大尤其要这样。 最初每个target可以不实现, 只需echo出你懂的message即可, 这样你好先把真那个执行逻辑理清, 后面顺着清晰的思路写就行了。每个target的name要仔细思考,也是为了顺脑。

2. 涉及经常变化的、路径相关的属性写进属性文件里, Build文件本身不应该有太多具体的属性值,因为一旦有变化, 修改起来就比较不顺手。 而且这会让build文件更轻量、更好看, 其它需要配置脚本的人员也不需要了解你的具体执行逻辑, 在你的属性文件里进行更改即可

3. 网上大多数例子都是ant和java结合使用的, 实际上只要环境变量有了, ant和其它语言也可以结合, 看自己需求了. 为了某些需求,甚至可以写一些简单的app用在你的ant里。比如我自己,因为特殊情况,写了个拿文件版本的app用在ant里, 为了使solution和输出文件的压缩打包文件占用空间更小,我没用ant自带的zip, 而是用了7z command版,每次编译还是可以节约不少空间的。(真是为了达到目的,不择手段呀)

4. 用一些ant库,可能会让你事半功倍

 

Ant毕竟是描述性的xml,做逻辑处理十分难受, 代码重用也要绕很大弯子. 这方面讨论有条比较好的帖子

类似的build tools有maven和buildr

转载于:https://www.cnblogs.com/codinglife/archive/2010/09/21/1831934.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值