Assemble gradle flavor 从其他 flavors 编译依赖

Assemble gradle flavour compiles dependencies from other flavors

我们正在尝试开发 2 gradle 种风格以加快我们的开发过程:

我在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

对于示例应用程序,它可以编译。但在我们的例子中,我们有一个项目,在快照中找不到最新的功能(因为它们尚未发布)。这不应该发生,因为我们是在本地构建的。有什么方法可以防止 gradle 编译远程风格吗?

你想做的事情可能会在最新版本的 Gradle 中得到解决。

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

举个例子,假设你有一个库 L,部署在远程存储库上,还有一个依赖于 L 的项目 P。假设 L(比如,"libL/")和 P("projectP") 在你系统的同一目录中,你可以通过 运行 来自 projectP 的以下命令构建 "local" 版本:

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

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