首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在gradle中从几个相互冲突的传递依赖中强制执行最高版本

在gradle中从几个相互冲突的传递依赖中强制执行最高版本
EN

Stack Overflow用户
提问于 2019-05-10 12:45:48
回答 1查看 237关注 0票数 1

我从事一个包含多个服务和库的大型项目,主要是在grails,中使用gradle构建器。我正在尝试更新一个库(比如出于安全原因,logback) )。

我已经在我们的一个库中更新了它(比如our-logger),,如下所示):

代码语言:javascript
复制
#our-logger/build.gradle
...
dependencies {
    ...
    compile 'ch.qos.logback:logback-classic:1.2.3'
    ...
}

当我更新一个服务(比如our-service)来使用新版本的our-logger )时,我从其他库中获得了logback,而gradle选择了通过cobertura和其他一些依赖项的更低的版本,而不是通过our-logger的更高版本。

代码语言:javascript
复制
#our-service/build.gradle
...
apply plugin: 'cobertura'
...
dependencies {
    ...
    compile 'our-logger:9.99' # safe now with logback-1.2.3
    ...
}
代码语言:javascript
复制
~/our-service $ ./gradlew dependencies
...

cobertura
\--- net.sourceforge.cobertura:cobertura:2.1.1
     +--- ch.qos.logback:logback-classic:1.0.13 -> 1.1.11
     |    \--- ch.qos.logback:logback-core:1.1.11
...
compile - Dependencies for source set 'main' (deprecated, use 'implementation ' instead).
+--- org.grails:grails-dependencies:3.3.8
|    +--- org.springframework.boot:spring-boot-starter-logging:1.4.2.RELEASE -> 1.5.15.RELEASE
|    |    +--- ch.qos.logback:logback-classic:1.1.11
|    |    |    +--- ch.qos.logback:logback-core:1.1.11
...
+--- our-logger:9.99
|    +--- ch.qos.logback:logback-classic:1.2.3 -> 1.1.11 (*)

如何在不显式声明所有服务的情况下强制执行logback-1.2.3

EN

回答 1

Stack Overflow用户

发布于 2019-05-12 14:36:04

gradle文档将此文件置于高级依赖管理下。您应该能够使用excludes来实现您的目标。还有其他方法也是分级医生

代码语言:javascript
复制
compile(“some:other:dependency”) {
    exclude group: 'ch.qos.logback', module: 'logback-classic'
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56078028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档