通过maven做字符替代处理
项目打包的时候,经常会遇到动态生成文件中字符串的要求。
举个例子,android手机项目,打包生成的APK文件,如果世间只有一个分发渠道,比如google android market,那么没关系,我就打一个包,发布就可以了。
但是现在有多个渠道,比如国内的安卓市场,EOE等等,为了能区分用户安装的版本是从哪个渠道来的,需要在分发包中定制一个渠道代号。
当然手工也可以做这件事情,不过,耗费精力而且容易出错。
这里打算用maven配置来实现这个功能。maven中对资源文件有个filter过滤器的配置,可以用于配置对指定文件进行文字替代。使用的是在刚才生成QR二维码图片的简单示例中的maven项目,在此基础上增加示例。
代码见:
主要过滤配置在这里:
<build>
<resources>
<resource>
<directory>data</directory>
<includes>
<include>info.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
这样,当打包的时候,会将data/info.xml文件中的占位符替代为变量。
info.xml文件中:
<info>
<version>${software.version}</version>
</info>
${software.version}就是占位符。
如果执行:
mvn package –Dsoftware.version=1.0
则打包的时候,会将占位符替换为1.0。
如果需要有个默认值,比如执行:
mvn package
使用这个默认值替代占位符。如果写–Dsoftware.version=1.0再用java变量替代。
可以在pom.xml文件中增加:
<properties>
<software.version>inner test</software.version>
</properties>
这样直接mvn package的时候替代的就是inner test文字。
这篇文章上的评论的 RSS feed TrackBack URI