Android上Gradle的默认依赖范围是什么?

时间:2016-02-06 19:57:02

标签: android gradle android-gradle

在Android Studio的Gradle中,我注意到提供依赖范围是可选的。例如:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
            'org.hamcrest:hamcrest-core:1.3'
            'org.hamcrest:hamcrest-library:1.3'
}

请注意,最后两个库没有附加编译范围。我把它留空了,我仍然可以同步gradle。如果没有在此指定任何内容,默认范围是什么?

2 个答案:

答案 0 :(得分:2)

范围实际上是给定依赖关系配置的标签。它在很大程度上取决于你使用的gradle插件(即:java插件或android插件)。 如果您不添加任何配置标签,它将保存为未标记的依赖项。 大多数情况下,如果您需要compile依赖项并且不添加标签,那么您的构建将会中断。如果它不破坏可能是因为:

  • 您实际上并不需要依赖
  • 您正在使用gradle插件处理很好的未标记的依赖项
  • 或者(更有可能),依赖已经存在于构建缓存或部分构建中,因此编译器仍然可以找到类,但是如果清理项目则会中断。

相关文档on dependency configuration for gradle

答案 1 :(得分:0)

Logain的答案有一个小的更新。 compile已弃用。 implementation可用来代替它。 https://docs.gradle.org/current/userguide/java_plugin.html#sec:java_plugin_and_dependency_management