两个android项目使用gradle在同一个存储库中共享公共模块

kor*_*rre 4 git android gradle android-gradle-plugin

我们正在创建一个应用程序(实际上是2个),它分成2个独立的项目,但共享相同的GIT存储库(git root中有2个独立的文件夹).它是一款适用于掌上电脑和一款适用于其他平台的应用 但他们应该共享一些代码,如Utils,API调用等.

文件夹结构如下所示:

- GIT Root
- 项目(项目)
--- App 1(Android应用程序)
--- App 2(Android应用程序)
--- Common(Android库)

App1和App2应该能够从常见而不是其他方式获得代码.

试图像上面那样使用Gradle,但它似乎不起作用.我知道为两个应用程序共享相同的git repo可能不是处理这种情况的最佳方式,但我在这里没有选择.

你认为这可能以某种方式做到吗?(也许我只是不正确理解模块或类似的东西)

我是Gradle的新手,这使得这个更难......

ame*_*non 6

如果所有三个项目都在同一个Git存储库中,这并不难做到.以下是您应该如何设置项目的框架:

App1 (Android application)
    |_ build.gradle
    |_ src
App2 (Android application)
    |_ build.gradle
    |_ src
Common (Android library)
    |_ build.gradle
    |_ src
settings.gradle
build.gradle
Run Code Online (Sandbox Code Playgroud)

顶级build.gradle文件可以具有通用的gradle设置,您将用于所有子项目

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}
Run Code Online (Sandbox Code Playgroud)

确保该settings.gradle文件包含您的所有项目:

include ':App1'
include ':App2'
include ':Common'
Run Code Online (Sandbox Code Playgroud)

设置Common为Android库项目.在添加行的build.gradle文件中Common:

apply plugin: 'com.android.library'
Run Code Online (Sandbox Code Playgroud)

将其他两个项目设置为Android应用程序,并将Common项目作为依赖项包含在内.

apply plugin: 'com.android.application'

dependencies {
    compile project(':Common')
    :
    :
}
Run Code Online (Sandbox Code Playgroud)