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

JDK17环境下Maven多模块反应器构建传递依赖版本解析异常

问题修复方案

根因说明

你遇到的问题核心是Maven 3.6.3 与 JDK 17 不兼容导致的属性插值bug:

  • Maven 3.6.x 系列版本官方仅支持到 JDK 16,从 3.8.4 版本开始才正式完整适配 JDK 17
  • 单独编译子模块时触发的是简化依赖解析逻辑,未触发bug路径;多模块聚合构建时会执行全量依赖调解,旧版Maven在JDK17环境下无法正确解析第三方依赖POM中的${project.version}属性,直接将变量名当做版本号处理

修复步骤

  • 优先升级Maven版本到3.8.8或3.9.x最新稳定版,版本适配后即可原生解决属性解析异常问题
    升级完成后执行以下命令验证:
    mvn clean compile -U -DskipTests
    
  • 如果暂时无法升级Maven版本,可在父POM的dependencyManagement节点手动锁定所有出问题的传递依赖版本,以camel-netty4为例:
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-netty4</artifactId>
      <version>${camel.version}</version>
    </dependency>
    
    锁定后Maven会直接使用指定版本,无需解析第三方依赖传递的版本属性
  • 若上述方案执行后仍有问题,可清空本地Maven仓库中对应依赖的缓存文件,避免本地已缓存的损坏POM影响解析

内容的提问来源于stack exchange,提问作者Jérémie B

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:45:08