假设application
模块构建.gradle
dependencies {
implementation "com.example.http:core:5.1"
implementation "com.example.common:network:1.0"
}
和http
核心第三方项目建成gradle
dependencies {
implementation "com.example.common:network:2.0"
}
(因此http
的.pom内部依赖于network
2.0(
在这种情况下,gradle将为application
和http
模块选择2.0版本的network
模块
但是,我如何使gradle同时使用network
:1.0的两个版本作为直接application
和2.0的传递http
依赖项?
有一种解决冲突依赖关系的技术,称为shadowjar。
令人信服的是,有一个很棒的gradle插件可以用来构建这些。