You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac环境Gradle 7.6.1构建失败:Jackson依赖版本冲突

问题分析

你的Gradle构建在:test任务失败,核心原因是Jackson依赖版本约束冲突:

  • 项目直接声明了com.fasterxml.jackson.core:jackson-databind:2.15.0和com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.0
  • Apache Beam间接依赖要求Jackson版本为2.14.1
  • fortify-bom通过BOM机制强制限定Jackson版本必须为2.13.0

这三个互斥的版本要求导致Gradle无法解析:testRuntimeClasspath配置,最终构建失败。

解决方案

以下是三个可行的解决方向,可根据项目合规要求和兼容性需求选择:

方案1:对齐fortify-bom的强制版本(优先推荐)

直接将项目的Jackson依赖版本调整为2.13.0,与fortify-bom的约束保持一致:

// 修改build.gradle中的Jackson依赖声明
implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.0'
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.0'

调整后建议验证Apache Beam在Jackson 2.13.0下的功能,Jackson小版本间的API兼容性通常较好,大概率不会出现问题。

方案2:强制指定Jackson版本(需确认合规性)

如果项目必须使用Jackson 2.15.0,可以通过Gradle的版本强制策略覆盖fortify-bom和Apache Beam的约束:

// 在build.gradle中添加版本强制配置
configurations.all {
    resolutionStrategy {
        // 强制所有依赖使用指定的Jackson版本
        force 'com.fasterxml.jackson.core:jackson-databind:2.15.0'
        force 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.0'
        // 同步强制核心模块版本,避免版本不一致
        force 'com.fasterxml.jackson.core:jackson-core:2.15.0'
        force 'com.fasterxml.jackson.core:jackson-annotations:2.15.0'
    }
}

注意:此方案需要确认是否违反项目的合规规定(比如fortify-bom的版本限制是否为硬性要求),同时要全面测试Apache Beam与Jackson 2.15.0的兼容性。

方案3:排除Apache Beam的Jackson依赖

如果Apache Beam对Jackson的依赖并非核心必要,可以排除其自带的Jackson依赖,改用项目指定的版本:

// 以Apache Beam核心依赖为例,添加exclude配置
implementation('org.apache.beam:beam-sdks-java-core:你的版本号') {
    exclude group: 'com.fasterxml.jackson.core', module: 'jackson-databind'
    exclude group: 'com.fasterxml.jackson.datatype', module: 'jackson-datatype-jsr310'
}

调整后务必测试Apache Beam的相关功能,确保排除依赖后不会出现运行时错误。

内容的提问来源于stack exchange,提问作者gcpdev-guy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 00:28:27