【问题标题】:Skinning Android app with Maven build profiles使用 Maven 构建配置文件为 Android 应用程序换肤
【发布时间】:2012-03-30 18:23:01
【问题描述】:

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

例如: mvn clean install -P 开发者, mvn clean install -P Customer1, mvn clean install -P Customer2

换句话说,不同的客户需要不同的图片集、不同的字符串(appName、版权等),而且布局中的一些元素应该隐藏或显示(开发者资料),所以布局也不同。

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

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

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

在此先感谢

【问题讨论】:

  • 你有没有试过在每个配置文件的android maven配置中指定resourceDirectory?例如 ${project.basedir}/res-custom1。这应该可以按您的预期工作。
  • 我正在努力,看起来你是对的,我的朋友。我会带着明确的答案回来,但非常感谢。
  • 好的,它成功了,你让我很开心,yorkw :) 非常感谢。
  • 欢迎使用 stackoverflow。考虑自己为自己的问题添加答案。

标签: android maven build skinning profiles


【解决方案1】:

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

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

例如:

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

等等……

【讨论】:

  • 是否可以像在 Gradle 中那样自动合并多个资源和资产目录?
  • 是的!请参阅我对这个问题的回答。
【解决方案2】:

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

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

【讨论】:

  • 谢谢,我去看看
  • @Blackhex 链接似乎不再有效:警告!未找到此域的域映射升级。请登录并转到您博客的“域升级”页面以使用此域。
猜你喜欢
  • 2016-10-13
  • 2012-07-11
  • 2018-10-26
  • 1970-01-01
  • 2013-08-13
  • 1970-01-01
  • 2012-04-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多