首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用风格控制Android Gradle项目的最好方法是什么?

用风格控制Android Gradle项目的最好方法是什么?
EN

Stack Overflow用户
提问于 2014-08-07 12:16:24
回答 1查看 244关注 0票数 2

我在一家有大约20个项目的公司工作,所有项目都使用各种内部和外部库。目前,我们正在将Android项目迁移到Android Studio和Gradle build。为了进行对应用程序开发团队影响较小的迁移,我们创建了一个迁移核对表。在我们的迁移清单中最重要的事项之一是版本控制(实际上是SVN)中不同风格的版本控制方法。

当前(Eclipse ADT)

我们的两个项目使用“可视化皮肤策略”,包含一个base-library-project和各种客户端项目,通常使用base-library-project,只更改'res‘文件夹中的图像、可绘制和文本资源。

未来(Android Studio + Gradle)

为了迁移到Android Studio和Gradle构建环境,探索您的大多数优势,我们认为利用gradle风格的最佳方式。因此,迁移后的项目结构如下所示(只考虑client-project,因为base-library-project在artifactory中):

代码语言:javascript
复制
  |- my-project
  |
  |- client-project
  |    |
  |    |- src
  |    |    |
  |    |    |- project-1
  |    |    |    |
  |    |    |    |-res
  |    |    |    | AndroidManifest.xml
  |    |    |    |
  |    |    |- project-2
  |    |    |    |
  |    |    |    |-res
  |    |    |    | AndroidManifest.xml
  |    |    |    |
  |    |    |- project-3
  |    |    |    |
  |    |    |    |-res
  |    |    |    | AndroidManifest.xml
  |    |    |    |
  |    |    
  |    | build.gradle
  |
  | /gradle
  | build.gradle
  | settings.gradle

但是SVN的结构是:

代码语言:javascript
复制
 |- base-library-project
 |           |- trunk
 |           |- tags
 |           |- branches
 |
 |- client-project-1
 |           |- trunk
 |           |- tags
 |           |- branches
 |
 |- client-project-2
 |           |- trunk
 |           |- tags
 |           |- branches
 |
 |- client-project-3
 |           |- trunk
 |           |- tags
 |           |- branches

我们的问题是:最好的版本控制方式是什么?全部放在一个SVN项目中?分开?如果分开,是如何实现的?

目前,在Eclipse ADT中,每个“风格”(或客户端)都是一个项目,并在SVN中单独进行版本控制。但是,有时,我们需要生成一个客户端项目的版本,并且只生成您的标记。

您是如何处理此场景的?有什么建议吗?

感谢您分享您的经验。

EN

回答 1

Stack Overflow用户

发布于 2014-08-21 05:41:06

将所有内容移动到一个存储库中,还是将它们分开,归根结底取决于个人选择。我最近使用了一个类似的“视觉皮肤策略”应用程序,就像你上面提到的那个。对我来说,我发现在一个存储库中移动所有内容会更整洁。

如果你想保持独立的存储库,你必须有一个包含资源,清单等的project1,project2的存储库,并将它们克隆到你的客户端项目src文件夹中,然后将它们添加到你的客户端项目gradle build文件中。我不确定你所说的“只生成你的标签”是什么意思,但是如果你想单独构建它们,你可以使用

代码语言:javascript
复制
gradleAssemble{Appname}Release

另一个方便的特性是,您可以在您的风格解密中指定不同的包名。

代码语言:javascript
复制
 productFlavors {
    project1 {
        applicationId "com.client-project.parjectOne."


    }  

这可以减轻对多个清单文件的需求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25174046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档