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

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

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

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

打包测试环境时:

ant -propertyfile build.properties

打包正式环境时:

ant -propertyfile build-live.properties

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

在此输入图片描述



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

截图


上图的红色部分,应该被我定义的变量:jiemai.path.css 的值(s.xxxx.com) 所替换。
但linux下却没有,也就是说在linux下,加载的build.properties,里面的变量没被应用,仅仅当做简单的存储key-value的属性文件。

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

在此输入图片描述


经过几次试验,感觉通过-propertyfile 去指定属性文件,在linux下ant的行为有点不一样
有感兴趣或者遇到类似情况的,可以交流一下~~~

你可能感兴趣的:(linux,ant,CI)