xiao.lu
xiao.lu
因为模块命名为com.google.gson,在META-INF/version/9/module-info中,😮💨
不理解官方为何如此命名
对比fastjson2,一看就明白
原因我想我明白了,maven-shade-plugin插件打包时会把gson里的模块化描述文件带过来,导致nacos-client错误的使用了gson的模块化描述文件
就会导致当前issues的问题,shade阶段不会编译,只是二次打包,所以不会暴露问题,https://openjdk.org/jeps/201。复现方法,构建一个模块化工程,requires nacos-client就会复现问题
2.0.0和2.4.1正好能做对比
2.0.0依赖的gson还没有模块化,所以没有问题
shaded排除掉所有的模块描述文件,因为也不确定后续哪个依赖突然模块化了
#12660