通过maven做字符替代处理

项目打包的时候,经常会遇到动态生成文件中字符串的要求。

举个例子,android手机项目,打包生成的APK文件,如果世间只有一个分发渠道,比如google android market,那么没关系,我就打一个包,发布就可以了。

但是现在有多个渠道,比如国内的安卓市场,EOE等等,为了能区分用户安装的版本是从哪个渠道来的,需要在分发包中定制一个渠道代号。

当然手工也可以做这件事情,不过,耗费精力而且容易出错。

这里打算用maven配置来实现这个功能。maven中对资源文件有个filter过滤器的配置,可以用于配置对指定文件进行文字替代。使用的是在刚才生成QR二维码图片的简单示例中的maven项目,在此基础上增加示例。

代码见:

http://easymorse.googlecode.com/svn/tags/barcode-demo-0.2/

主要过滤配置在这里:

<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文字。

 
PDF格式打印機    发送文章为PDF   

这篇文章上的评论的 RSS feed TrackBack URI

Leave a Reply