2011-07-19 28 views
0

我正在使用Maven(3.x)在Hudson中构建Android应用程序。作为构建的一部分,我使用过滤/配置文件对strings.xml文件进行文本替换。Maven在构建Android应用程序中的过滤

所以的strings.xml内,我将有条目,如:

<string name="app_name">${app_name}</string> 

在pom.xml文件,我有文件条目:

<profiles> 
<profile> 
    <id>local</id> 
    <properties> 
     <app_env>local</app_env> 
     <app_name>Acme-loc</app_name> 
    </properties> 
</profile> 
<profile> 
    <id>dev</id> 
    <properties> 
     <app_env>dev</app_env> 
     <app_name>Acme-dev</app_name> 
    </properties> 
</profile>  
.... 

当我看到里面的* .apk,strings.xml文件被正确替换。但是,当安装在设备中时,我看到$ {app_name},这导致我相信替换是在应用程序编译之后发生的(R文件在替换之前编译)。有没有人使用这种方法成功,如果是这样,你如何指定构建的哪一步发生替换,以便替换发生在R文件编译之前?有没有更好的替代Maven过滤来实现我在找什么?

+0

请更新您的[原始问题](http://stackoverflow.com/questions/6630511/maven-filtering),而不是重新发布它。 –

回答

1

要么将​​maven-resources-plugin配置为在生成源代码阶段触发,要么使用maven-replacer-plugin进行替换(允许您在任何阶段执行)。

+0

查看其他信息。 –