Ant:给Ant脚本传递参数的最佳实践

Ant是一个Make Tool,主要用于代码的编译,构建。当然,也有很多Ant爱好者开发了很多外部任务扩展了它的功能。它无界面,跨平台的特性,正好适用于软件开发人员。Ant已经成为软件开发人员开发过程中的一道利器。

在项目开发的过程中,Ant除了会被用来进行编译,打包,生成各种报告外,还可以被用来写开发中用到的工具。

当然了,既然是开发中用到,参数的传递也少不了了。那么,怎么样做才是更好的方法呢?

 

 

预备知识

 

1. Ant脚本中有<property>属性,可以用来设置值。

    但是一定要了解它的作用域和顺序。

    直接在<project>节点下的<property>所设置的值,所有的<target>都可以使用。而<target>节点下的<property>只在本<target>内部有效。

    <target>内部定义的<property>必须位于使用它的代码之前,因为Ant是边解析配置文件边执行的。如果定义的部分放到了使用的部分之后,那么使用的部分就会认为没有定义。也就是说,假如A和B是两段使用到了<property>的部分,而把<property>放到A和B之间的话,那么A不能使用这个<property>,而B则可以使用。但是<project>节点下的<property>则没有这个问题,Ant优先读取完所有<property>属性之后,才会去执行具体的<target>。

 

2. Ant中的<property>除了可以使用[name/value,name/location]这样的键值对外,还可以使用属性[file]加载properties文件。

    相比较而言,properties文件比xml更容易让普通使用者接受。

 

3. 在使用命令执行Ant脚本时,可以通过"-Dname=value"的方式向Ant脚本传递参数。

    如果在执行命令的时候,使用了"ant -f xxxx.xml -Dbuild.name=helloProject"之类的命令的话,那么Ant脚本中所有位置都可以使用${build.name}来使用这个属性的值。

     这一种方式,等同于<project>下的<property>。

 

4. Ant脚本中的<property>是有优先级区分的。

    如果在<project>有两个同名的<property>,Ant只读取第一个定义的值,不管是[name/value; name/location]还是[file]的定义方式。

    通过上面3中介绍的"-Dname=value"的方式定义的值的优先级比<project>下的<property>的优先级高。

 

最佳实践

 

1. 把所有需要用户传递的参数放到一个properties文件中去,并把定义部分<property file="build.properties">放到Ant脚本中的最前面。

 

2. 不要设计太多的参数。工具本来就是要减轻用户负担的,如果有太多的参数需要设置的话,任谁也要考虑一下使用成本的。

 

3.  如果参数只需要设置一次,以后不需要变更的话,那么算是最好的了。如果每一次执行都要传递不同的参数的话,可以考虑提供针对特定OS的脚本,使用"-Dname=value"来简化使用方法,比如说Windows的bat,linux/unix的sh文件等。不过,写特定OS的脚本是一种不推荐的方式,这样就把Ant本来拥有的跨平台能力给抹去了。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值