gpt4 book ai didi

spring - 如何排除 gradle 依赖项

转载 作者:行者123 更新时间:2023-12-03 03:54:25 26 4
gpt4 key购买 nike

我目前有一个项目,我已经对其执行了 aqua 扫描,它发现我当前使用的 jackson-databind-2.9.8.jar 是一个严重漏洞,并建议我用 2.10 版本替换。为了更新这一点,在确保所有其他依赖项/代码正常工作的同时,我在 build.gradle 文件中尝试了以下代码,其中 group_name:microservice-event:0.2.+ 出现在 gradle 依赖项列表中,并且显然引入了导致问题的 2.9.8 jar:

    implementation 'com.fasterxml.jackson.core:jackson-databind:2.10'

implementation('*group_name*:microservice-event:0.2.+') {
exclude group: 'com.fasterxml.jackson.core', module: 'jackson-databind'
}

我还删除了 implementation '*group_name*:microservice-event:0.2.+'我之前在 build.gradle 文件中的行。

但是,现在该项目无法构建,我不知道为什么。有谁知道如何在 build.gradle 文件中编写代码以成功排除旧的 jars/依赖项,同时允许新的 jars(正如我尝试使用行 implementation 'com.fasterxml.jackson.core:jackson-databind:2.10' 所做的那样)。请注意,我不想更新 spring boot 版本。

最佳答案

当 Gradle 遇到同一个依赖的两个不同版本时,会执行一次冲突解决。它默认选择最高版本号。

然而,因为像 Jackson 这样的许多库都包含许多单独的模块,如 jackson-databindjackson-core ,您最终可能会遇到不同版本之间不匹配的情况。

要对齐它们,您可以使用 Jackson BOM 和 Gradle 的 platform dependency机制。它看起来像这样(仅选择以下依赖项之一):

dependencies {
// Enforce the specified version
implementation(enforcedPlatform("com.fasterxml.jackson:jackson-bom:2.10.4"))

// Align all modules to the same version, but allow upgrade to a higher version
implementation(platform("com.fasterxml.jackson:jackson-bom:2.10.4"))
}

您不需要从其他依赖项中排除任何内容。

如果你升级后在使用Jackson时遇到问题,你应该看看 release notes for 2.10并检查您是否会受到任何兼容性更改的影响。当然,如果问题出在第三方库中,则可能更难以修复。但是你可以试试2.9行的最新版本(此时是2.9.10),看看这里漏洞是否修复。

关于spring - 如何排除 gradle 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62270756/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com