使用Closure整理Gradle依赖项

时间:2017-12-08 10:39:10

标签: android gradle android-gradle dependency-management

我阅读this post关于如何整理gradle依赖项的内容,实现提供了类似的内容:

def dependencyGroup(Closure closure) {
    closure.delegate = dependencies
    return closure
}

def ui = dependencyGroup {
    implementation "com.android.support:appcompat-v7:27.0.0"
    implementation "com.android.support.constraint:constraint-layout:1.1.0-beta3"
    implementation "com.android.support:design:27.0.0"
}

def network = dependencyGroup {
    implementation "com.squareup.moshi:moshi-adapters:1.5.0"
    implementation "com.squareup.retrofit2:retrofit:2.3.0"
}

dependencies {
    ui()
    network()
}

除了丢失快速修复以升级依赖项版本 使用这种方式有哪些缺点,缺点或缺点?

我想对此进行讨论,非常欢迎任何意见或反馈。

1 个答案:

答案 0 :(得分:0)

我发现的一个限制是当您使用dependencyGroup声明def时 它将在本地定义您的组,然后无法从其他gradle文件中调用它。要解决此问题,您可以使用:

ext.myDependencyGroup = dependencyGroup {
    implementation ...
}