问题描述
假设application
模块build.gradle
dependencies {
implementation "com.example.http:core:5.1"
implementation "com.example.common:network:1.0"
}
还有http
核心第三方项目buid.gradle
dependencies {
implementation "com.example.common:network:2.0"
}
(因此http
的.pom内部具有network
2.0的依赖项)
在这种情况下,gradle将为network
和application
模块选择版本2.0的http
模块。
但是,如何使gradle使用network
的两个版本:1.0作为直接的application
和2.0作为可传递的http
依赖项?
解决方法
有一种解决冲突依赖性的技术称为 shadow jar。
很方便的是,有一个awesome gradle plugin用于构建它们。