【问题标题】:Assemble gradle flavour compiles dependencies from other flavorsAssemble gradle flavor 编译来自其他风味的依赖项
【发布时间】:2017-02-06 17:47:24
【问题描述】:

我们正在尝试开发 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

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

【问题讨论】:

    标签: android gradle dependencies libraries android-flavors


    【解决方案1】:

    最新版本的 Gradle 可能会解决您想做的事情。

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

    例如,假设您有一个库 L,部署在远程存储库上,还有一个依赖于 L 的项目 P。想象一下 L(例如,“libL/”)和 P(“projectP”)都在在您系统上的相同目录下,您可以通过在 projectP 中运行以下命令来构建“本地”版本:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多