android 工作室中的依赖项。插件与库,DSL 与 API

Dependency in android studio. Plugin Vs Library, DSL Vs API

我在我的项目中使用了 Firebase 云消息服务。我阅读了 android 中集成的 Firebase 文档,并看到这一行添加到项目的 build.gradle 中。

 classpath 'com.google.gms:google-services:3.0.0'

我的问题是:

为什么我们必须使用google-服务版本3.0.0?最新的是 9.4.0.

版本:Tnx Gabriele. As per @ 它是一个插件而不是库。那么插件和库之间有什么区别。 DSL 和 API 有什么不同? API 是依赖于 DSL 还是 DSL 依赖于 API?

不要将构建脚本依赖项与库依赖项混淆:

在您的 buildscript 依赖项中,您将定义脚本使用的插件。在这种情况下,您要添加 google-services 插件

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.2'
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

dependencies 部分中,您将定义所使用的库。

dependencies {
    compile 'com.android.support:support-v4:24.1.1'
    compile 'com.google.firebase:firebase-core:9.4.0'
    compile 'com.google.firebase:firebase-messaging:9.4.0'    
}