在Android Gradle项目中,有没有办法在嵌套依赖项中传递构建变体配置?

时间:2017-02-22 02:30:12

标签: android android-gradle

我在Android项目中遇到了问题。

例如,有四个模块:App,Lib1,Lib2,Lib3。

应用:

    compile project(":Lib1")

Lib1:

    compile project(":Lib2")

LIB2:

    compile project(":Lib3")

现在,我为 App和Lib3 配置产品风味,如下所示:

    productFlavors {
        formal {}
        dev {}
    }

当我为App组装构建变体时,例如:App:assembleFormalRelease,我想要构建Lib3的formalRelease变体。

==============

我知道我可以通过在所有模块中添加相同的productFlavors并进行如下配置来实现此目的。

    configurations {
        devReleaseCompile {}
        devDebugCompile {}
        formalReleaseCompile {}
        formalDebugCompile {}
    }

    dependencies {    
        devReleaseCompile project(path:"xxx", configuration: "devRelease")
        devDebugCompile project(path:"xxx", configuration: "devDebug")
        formalReleaseCompile project(path:"xxx", configuration: "formalRelease")
        formalDebugCompile project(path:"xxx", configuration: "formalDebug")
    }

但是我的工作项目中有超过五个级别的嵌套依赖项,我想知道是否有更简单的解决方案。

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为任务依赖是你需要的。因为汇编任务是懒惰的负载 在App模块中:

tasks.whenTaskAdded { task ->
if(task.name.equals('assembleFormalRelease')
     {task.dependsOn ':lib3:assembleFormalRelease'}
} 

它是否有效?你的场景中有任何冲突吗?