6

我有 mavenized Android 应用程序,客户希望在构建时支持皮肤。

例如:mvn clean install -P Developer,mvn clean install -P Customer1,mvn clean install -P Customer2

换句话说,不同的客户需要稍微不同的图像集、不同的字符串(appName、版权等),而且布局中的一些元素应该隐藏或显示(开发人员配置文件),所以布局也不同。

我的第一个想法是让 res-customer1、res-customer2 之类的文件夹与标准 res 目录并行,并在 pom.xml 中的配置文件定义中进行交换,还将其重命名为 res,但这似乎不起作用。我总是将原始 res 文件夹放入构建中,在这种情况下,重复错误。

这是否意味着交换应该在 res 内部进行?我没有在 android maven 插件的配置中指定 resourceDirectory。

我一直在谷歌上搜索,但到目前为止,我没有找到任何有同样问题的人。如何解决?有什么通用的模式吗?

提前谢谢了

4

2 回答 2

6

根据 yorkw 的回答,这个解决方案对我有用:

对于每个配置文件,需要将 resourceDirectory 添加到 android maven 插件的配置中。

例如:

<resourceDirectory>${project.basedir}/res-customer1</resourceDirectory> <resourceDirectory>${project.basedir}/res-customer2</resourceDirectory>

ETC...

于 2012-03-15T06:55:54.137 回答
1

如果您想为不同的构建配置文件使用不同的资产或资源,并且甚至想以不同的方式合并每个构建的多个此类目录,您可以关注这篇很棒的博客文章:

https://ebuddytechblog.wordpress.com/2013/04/08/brand-android-builds-using-maven/

于 2013-11-27T09:49:51.353 回答