【发布时间】:2016-05-26 12:18:58
【问题描述】:
我正在尝试从我的 Android 项目中删除 传递依赖项,但由于某种原因,当我尝试从我的特定依赖项中删除依赖项时,exclude 无法正常工作。
例如,我想从我的项目中删除 support-annotations
如果我使用
configurations {
all*.exclude group: 'com.android.support', module:'support-annotations'
}
从依赖树中排除依赖。我可以使用 ./gradlew app:dependencies 来查看依赖树
但是如果我使用
compile('com.android.support:support-v4:23.4.0')
{
exclude group: 'com.android.support', module:'support-annotations'
}
所以我的问题是,为什么当我尝试从特定依赖项中删除依赖项时它不起作用?
更新 1:
还有谁能告诉我树中依赖项旁边的star (*) 符号代表什么?
更新 2
我也在使用 Fresco 我在 Fresco 上尝试过同样的事情,exclude rule 似乎对它有用
Fresco的依赖树
当我在 Fresco 中排除 imagepipeline-base 时的依赖树
compile("com.facebook.fresco:fresco:0.9.0")
{
exclude group: 'com.facebook.fresco', module: 'imagepipeline-base'
}
如您所见,imagepipeline-base 依赖项被排除在外。 所以我不知道为什么这不适用于 Android Support Annotations 传递依赖
【问题讨论】:
-
这只是一个例子吗?因为你不能显式编译 v4 库
-
@cricket_007 是的,这只是一个例子。我有一个复杂的依赖树,但是如果可以解决这个简单的示例,那么我将能够解决复杂的树。
-
你使用哪个 gradle 版本?在 2.13 上它可以正常工作。
-
@Crazyjavahacking 我正在使用
classpath 'com.android.tools.build:gradle:2.1.0' -
为什么是那个版本? Android 需要吗?
标签: android android-studio gradle build.gradle gradle-dependencies