android - Gradle 不会按要求排除模块

标签 android android-gradle-plugin build.gradle

我无法使用“排除”在 build.gradle 文件中排除 Guava 模块。

有了这个依赖 block :

dependencies {
    ...
    compile(group: 'com.google.api-client', name: 'google-api-client', version: '1.19.0') {
        exclude(group: 'com.google.guava', module: 'guava-jdk5') // !!! Doesn't work!!!
       ...
    }
...
}

我得到下面的依赖树。请注意,不排除 guava-jdk5。

+--- com.google.api-client:google-api-client:1.19.0
|    +--- com.google.oauth-client:google-oauth-client:1.19.0
|    |    +--- com.google.http-client:google-http-client:1.19.0
|    |    |    ...
|    |    \--- com.google.code.findbugs:jsr305:1.3.9
|    ...
|    \--- com.google.guava:guava-jdk5:13.0

...

注意最后一行仍然包含 guava 模块,它没有被排除。为什么?如何排除?

最佳答案

问题是另一个编译对象也依赖于将 guava-jdk5 作为传递依赖的第一级依赖,所以这个另一个对象引入了不需要的模块。

我终于能够看到这个使用

./gradlew -q :app:dependencyInsight --dependency guava --configuration compile

并且可以使用排除它

configurations {
    compile.exclude module: 'guava-jdk5'
}

关于android - Gradle 不会按要求排除模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25993974/

相关文章:

android - 无法在 android studio 3.1.4 中加载 AppCompat ActionBar 并出现未知错误

java - 修复 java.util.zip.ZipException

Gradle:每个子项目的通用 Zip 任务

android - 尝试实现多语言支持时应用程序崩溃

android - 如何使用 Mockk 模拟和测试 RxJava/RxAndroid?

android - 如何使用 adb(没有 IDE)android 调试我的应用程序

Android studio 3.5 : NDK Resolution Outcome: Project settings: Gradle model version=5. 4.1,NDK 版本未知

android - 透明位图为黑色

android - 无法跨过 Eclipse 中的断点

android - gradle 2.1.0 中的问题 : Application launches with delay of 5-6 seconds