您可以排除所有传递依赖项或仅一一排除,然后将所需的版本包含在您的build.gradle
file.
方法 1 - 排除 lib 的所有依赖项
Use the transitive
告诉 gradle 你不想要的字段及物的需要解决的依赖关系。的文档transitive
says:
设置是否应解决此依赖性,包括或排除其传递依赖性。属于此依赖性的工件本身可能具有对其他工件的依赖性。后者称为传递依赖。
Example:
compile('com.super.lib:awesome@aar') {
transitive = false
}
方法 2 - 选择您不想包含的依赖项
Use the exclude
方法其中:
添加排除规则以排除此依赖项的传递依赖项。
Example:
compile('com.super.lib:awesome@aar') {
exclude group: 'com.dont.want.this', module: 'old-artifact'
}
但请注意,这并不能保证排除的依赖项不会被另一个依赖项拉入。如果您想从任何地方排除依赖项,请使用配置范围的排除策略:
configurations.all {
exclude group: 'com.dont.want.this', module: 'old-artifact'
}
另外,你不need指定两者group
and module
名称。这个例子来自gradle的JavaDoc:
dependencies {
compile('org.hibernate:hibernate:3.1') {
//excluding a particular transitive dependency:
exclude module: 'cglib' //by artifact name
exclude group: 'org.jmock' //by group
exclude group: 'org.unwanted', module: 'iAmBuggy' //by both name and group
}
}
WARNING
只是友好地提醒您有关更改依赖项版本号的危险。
当您使用此技术更改依赖项版本时,您必须彻底测试应用程序,因为新/旧版本的依赖项中可能会出现重大更改或意外行为。很明显,major版本号跳转可能会导致崩溃/意外行为,但您甚至必须注意patch版本号的一部分,因为库创建者可能预计所使用的依赖项版本存在一些错误,并包含一些修复,一旦错误修复,这些修复可能会破坏库。