确认

  • [X] 我的版本是最新版本, 我的版本号与 version 相同, 并且项目里无依赖冲突
  • [X] 我已经在 issue 中搜索过, 确认问题没有被提出过
  • [X] 我已经修改标题, 将标题中的 描述 替换为遇到的问题

功能改进

在使用 com.baomidou:mybatis-plus-spring-boot3-starter:3.5.9 或者 com.baomidou:mybatis-plus-boot-starter:3.5.9 时 传递依赖 mybatis-plus-springmybatis-plus-extension 不符合 JPMS 规范导致构建报错

错误: 模块 com.baomidou.mybatis.plus 同时从 com.baomidou.mybatis.plus.extension 和 com.baomidou.mybatis.plus.spring 读取程序包 com.baomidou.mybatisplus.extension.toolkit
错误: 模块 com.baomidou.mybatis.plus 同时从 com.baomidou.mybatis.plus.extension 和 com.baomidou.mybatis.plus.spring 读取程序包 com.baomidou.mybatisplus.extension.spi
错误: 模块 com.baomidou.mybatis.plus 同时从 com.baomidou.mybatis.plus.extension 和 com.baomidou.mybatis.plus.spring 读取程序包 com.baomidou.mybatisplus.extension.repository
错误: 模块 com.baomidou.mybatis.plus 同时从 com.baomidou.mybatis.plus.extension 和 com.baomidou.mybatis.plus.spring 读取程序包 com.baomidou.mybatisplus.extension.ddl
错误: 模块 com.baomidou.mybatis.plus 同时从 com.baomidou.mybatis.plus.extension 和 com.baomidou.mybatis.plus.spring 读取程序包 com.baomidou.mybatisplus.extension.activerecord
错误: 模块 com.baomidou.mybatis.plus.extension 同时从 com.baomidou.mybatis.plus.extension 和 com.baomidou.mybatis.plus.spring 读取程序包 com.baomidou.mybatisplus.extension.toolkit
错误: 模块 com.baomidou.mybatis.plus.extension 同时从 com.baomidou.mybatis.plus.extension 和 com.baomidou.mybatis.plus.spring 读取程序包 com.baomidou.mybatisplus.extension.spi
错误: 模块 com.baomidou.mybatis.plus.extension 同时从 com.baomidou.mybatis.plus.extension 和 com.baomidou.mybatis.plus.spring 读取程序包 com.baomidou.mybatisplus.extension.repository
错误: 模块 com.baomidou.mybatis.plus.extension 同时从 com.baomidou.mybatis.plus.extension 和 com.baomidou.mybatis.plus.spring 读取程序包 com.baomidou.mybatisplus.extension.ddl
错误: 模块 com.baomidou.mybatis.plus.extension 同时从 com.baomidou.mybatis.plus.extension 和 com.baomidou.mybatis.plus.spring 读取程序包 com.baomidou.mybatisplus.extension.activerecord
错误: 模块 com.baomidou.mybatis.plus.core 同时从 com.baomidou.mybatis.plus.extension 和 com.baomidou.mybatis.plus.spring 读取程序包 com.baomidou.mybatisplus.extension.toolkit
错误: 模块 com.baomidou.mybatis.plus.core 同时从 com.baomidou.mybatis.plus.extension 和 com.baomidou.mybatis.plus.spring 读取程序包 com.baomidou.mybatisplus.extension.spi
错误: 模块 com.baomidou.mybatis.plus.core 同时从 com.baomidou.mybatis.plus.extension 和 com.baomidou.mybatis.plus.spring 读取程序包 com.baomidou.mybatisplus.extension.repository
错误: 模块 com.baomidou.mybatis.plus.core 同时从 com.baomidou.mybatis.plus.extension 和 com.baomidou.mybatis.plus.spring 读取程序包 com.baomidou.mybatisplus.extension.ddl
错误: 模块 com.baomidou.mybatis.plus.core 同时从 com.baomidou.mybatis.plus.extension 和 com.baomidou.mybatis.plus.spring 读取程序包 com.baomidou.mybatisplus.extension.activerecord

JPMS 不允许不同模块导出相同的包名
遇到有这种问题的三方库只能使用各种复杂的插件合并Jar 或者放弃模块化

为什么两个不同的模块会使用相同的顶级包名? 图片

参考资料

https://openjdk.org/jeps/261

Comment From: mengxiaofei007

我也遇到了同样的问题,很尴尬。

Comment From: syrm-ll

我也遇到了同样的问题,很尴尬。

可以使用 gradle 插件合并这两个 jar 为一个, 保留一个模块名称, 在面向生成的构建中没问题, 作为二方库不行, 依赖传递会炸掉 目前只能这么凑合用

Comment From: xdj14010727

哎,这么久了,这个问题居然没有人处理。