2016-09-28 70 views
2

我们正在努力开发2种gradle这个口味,以加快我们的发展历程:组装gradle这个味道与其他口味的编译依赖

  • 地方风味,编译我们的图书馆作为模块
  • 使用了远程味道

    productFlavors { 
        local {} 
    
        remote {} 
    } 
    

我已经宣布的gradle中的两种口味我国图书馆的最新快照

现在让我们假设我们的本地和远程库都可用作本地模块(用于调试目的)。 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编译远程风味吗?

回答

0

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

使用Gradle 3.1,现在可以使用所谓的"composite builds"。假设你有一个库L,它被部署在一个远程仓库中,而一个项目P依赖于L.假设L(比如“libL /”)和P(“projectP”)都在系统上的同一目录下,你可以通过从projectP运行以下命令来构建“本地”版本:

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

此外,复合材料建造are coming in Android Studio

+0

非常感谢。这解决了我的问题。 ;-) –

相关问题