确认
- [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-spring 和 mybatis-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 或者放弃模块化
为什么两个不同的模块会使用相同的顶级包名?
参考资料
Comment From: mengxiaofei007
我也遇到了同样的问题,很尴尬。
Comment From: syrm-ll
我也遇到了同样的问题,很尴尬。
可以使用 gradle 插件合并这两个 jar 为一个, 保留一个模块名称, 在面向生成的构建中没问题, 作为二方库不行, 依赖传递会炸掉 目前只能这么凑合用
Comment From: xdj14010727
哎,这么久了,这个问题居然没有人处理。
Comment From: puppyhang
同样的问题,居然没人解决,所以不得不说,项目一定要分层和模块化,隔离这些技术组件对业务的影响,这些开源项目随时可能变得没人解决问题,退回非模块了
Comment From: puppyhang
最接的版本搞出来的问题 3.5.9版本开始出现了mybatis-plus-spring这个模块,但是包名和extension模块式想同的,降级3.5.8之后可以正常使用
Comment From: syrm-ll
同样的问题,居然没人解决,所以不得不说,项目一定要分层和模块化,隔离这些技术组件对业务的影响,这些开源项目随时可能变得没人解决问题,退回非模块了
JPMS 现在只能在小项目中玩玩, 主要是 spring 和 spring-boot 不完全支持,
完全模块化(java --module <module>/<mainclass>) 试错成本太高了, 运行时不知道哪个依赖莫名其妙就找不到了 烦死