ant编译时的一个跨平台问题

原创
2013/03/14 13:35
阅读数 62

今天,在优化基于cruisecontrol持续集成环境的脚本时,遇到一个非常奇怪的问题,经过几次测试,我基本认为是ant在不同平台下的一点差异,或者是bug。

问题场景如下: ant编译时,一些配置在测试环境和正式环境上不一样,之前是在build.xml里 这样来指定配置文件的:

<property file="build.properties"/>

现在,我删掉这个配置,让其在运行ant时作为参数来指定配置文件,

打包测试环境时:

ant -propertyfile build.properties

打包正式环境时:

ant -propertyfile build-live.properties

在win7 下运行,很完美,读取指定配置文件,xml,jsp的替换都正常。

![在此输入图片描述][1] [1]: http://static.oschina.net/uploads/space/2013/0314/135258_fjbp_921107.jpg

<br> 但,在linux下,发现部分替换有问题,出现问题的是build.properties里定义的变量,不能被替换,比如:

![截图][2] [2]: http://static.oschina.net/uploads/space/2013/0314/134319_NhAb_921107.jpg <br> 上图的红色部分,应该被我定义的变量:jiemai.path.css 的值(s.xxxx.com) 所替换。 但linux下却没有,也就是说在linux下,加载的build.properties,里面的变量没被应用,仅仅当做简单的存储key-value的属性文件。

打包jsp的结果如下(${jiemai.path.css}没有被替换成具体值):

![在此输入图片描述][3] [3]: http://static.oschina.net/uploads/space/2013/0314/135130_vv9r_921107.jpg <br> 经过几次试验,感觉通过-propertyfile 去指定属性文件,在linux下ant的行为有点不一样 有感兴趣或者遇到类似情况的,可以交流一下~~~

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部