汇编gradle flavor会编译来自其他版本的依赖项

时间:2016-09-28 16:14:24

标签: android gradle dependencies libraries android-flavors

我们正在尝试开发2种食品来加速我们的开发过程:

  • 将我们的库编译为模块的本地风格
  • 使用我们库的最新SNAPSHOTS的远程风味

我已经在gradle中声明了两种口味:

productFlavors {
    local {}

    remote {}
}

目前,我们假设我们的本地和远程库都可用作本地模块(用于调试目的)。 I have created a sample project here.由于每个库都有子库,也应该是本地的或远程的,我添加了:

dependencies {
    localCompile project(path: ':mylibrary', configuration: "localDebug")
    remoteCompile project(path: ':mylibrary2', configuration: "remoteRelease")
}

现在它变得棘手。如果我拨打gradle assembleLocalDebug,我会收到这一行:

:mylibrary2:compileRemoteReleaseJavaWithJavac UP-TO-DATE

对于示例应用程序,它会编译。但在我们的案例中,我们有一个项目,其中最新的功能在SNAPSHOTS中找不到(因为它们尚未发布)。自从我们在当地建设以来,这不应该发生。有没有办法阻止gradle编译远程风味?

1 个答案:

答案 0 :(得分:0)

您可以在最新版本的Gradle中解决您想要做的事情。

使用Gradle 3.1,您现在可以使用所谓的"composite builds"

例如,假设你有一个库L,部署在一个远程存储库,一个项目P依赖于L.想象一下L(比如," libL /")和P(& #34; projectP")在您系统的同一目录中,您可以构建" local"从projectP运行以下命令的版本:

$ ./gradlew --include-build ../libL build

此外,复合构建are coming in Android Studio