Gradle:如何声明可传递依赖项

Gradle:如何声明可传递依赖项,gradle,android-gradle-plugin,Gradle,Android Gradle Plugin,我是Gradle的初学者,在我的应用程序中使用Crashlytics库。My Dependencies.Gradle的声明如下: ext { crashlyticsVersion = '2.5.5@aar' presentationDependencies = [ crashlytics:"com.crashlytics.sdk.android:crashlytics:${crashlyticsVersion}" ] } com

我是Gradle的初学者,在我的应用程序中使用Crashlytics库。My Dependencies.Gradle的声明如下:

ext {
    crashlyticsVersion = '2.5.5@aar'
    presentationDependencies = 
        [
        crashlytics:"com.crashlytics.sdk.android:crashlytics:${crashlyticsVersion}"
        ]
}
compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
    transitive = true
}
在我的演讲中,格雷德尔

dependencies {
    def presentationDependencies = rootProject.ext.presentationDependencies
    compile presentationDependencies.crashlytics
}

根据Crashlytics文档,必须使用transctive=true声明此依赖项。不知道怎么做。我的代码遵循干净的体系结构,gradle文件的设计来自于此。

您需要使用以下内容:

ext {
    crashlyticsVersion = '2.5.5@aar'
    presentationDependencies = 
        [
        crashlytics:"com.crashlytics.sdk.android:crashlytics:${crashlyticsVersion}"
        ]
}
compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
    transitive = true
}

我看不出为什么要通过使用扩展容器和定义变量使依赖项声明过于复杂。

您需要使用以下方法:

ext {
    crashlyticsVersion = '2.5.5@aar'
    presentationDependencies = 
        [
        crashlytics:"com.crashlytics.sdk.android:crashlytics:${crashlyticsVersion}"
        ]
}
compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
    transitive = true
}

我看不出有什么理由通过使用扩展容器和定义变量使依赖项声明过于复杂。

我知道这种works依赖项声明有帮助,依赖项的分离使管理变得容易。请参阅clean architecture:我知道这个works依赖项声明很有帮助,依赖项的分离使管理变得容易。参见清洁体系结构: