kai*_*ido 4 spring jar gradle build-dependencies build.gradle
我目前有一个项目,我对其执行了水色扫描,它识别出我当前正在使用的 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'
}
Run Code Online (Sandbox Code Playgroud)
我还删除了implementation '*group_name*:microservice-event:0.2.+'之前在 build.gradle 文件中的行。
但是,现在该项目无法构建,我不知道为什么。有人知道如何在 build.gradle 文件中编写代码以成功排除旧的 jar/依赖项,同时允许更新的 jar(正如我尝试使用该行所做的那样implementation 'com.fasterxml.jackson.core:jackson-databind:2.10')。请注意,我不想更新 spring boot 版本。
当 Gradle 遇到同一依赖项的两个不同版本时,它将执行冲突解决。默认选择最高版本号。
但是,由于许多库(例如 Jackson)由许多单独的模块(例如jackson-databind和 )组成jackson-core,因此您最终可能会遇到不同版本之间不匹配的情况。
为了对齐它们,您可以使用 Jackson BOM 和 Gradle 的平台依赖机制。它看起来像这样(仅选择下面的依赖项之一):
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"))
}
Run Code Online (Sandbox Code Playgroud)
您不需要从其他依赖项中排除任何内容。
如果您在升级后遇到使用 Jackson 的问题,您应该查看2.10 的发行说明,并检查您是否可能受到任何兼容性更改的影响。当然,如果问题出在第三方库中,修复起来可能会更困难。但是你可以尝试一下2.9行的最新版本(此时是2.9.10),看看这里的漏洞是否被修复。
| 归档时间: |
|
| 查看次数: |
6228 次 |
| 最近记录: |