nacos icon indicating copy to clipboard operation
nacos copied to clipboard

jdk21模块化项目集成nacos.client报错

Open aszdKing opened this issue 1 year ago • 4 comments

编译报错 java: 找不到模块: nacos.client

aszdKing avatar Aug 26 '24 08:08 aszdKing

因为模块命名为com.google.gson,在META-INF/version/9/module-info中,😮‍💨

luxiao0000 avatar Aug 27 '24 01:08 luxiao0000

不理解官方为何如此命名

luxiao0000 avatar Aug 27 '24 01:08 luxiao0000

没看懂问题,麻烦提供更详细的描述和报错上下文信息。

KomachiSion avatar Aug 28 '24 01:08 KomachiSion

对比fastjson2,一看就明白 image image

luxiao0000 avatar Aug 28 '24 05:08 luxiao0000

原因我想我明白了,maven-shade-plugin插件打包时会把gson里的模块化描述文件带过来,导致nacos-client错误的使用了gson的模块化描述文件

luxiao0000 avatar Sep 01 '24 09:09 luxiao0000

还是没明白, 这个shaded进来的描述文件会影响什么?

KomachiSion avatar Sep 02 '24 02:09 KomachiSion

就会导致当前issues的问题,shade阶段不会编译,只是二次打包,所以不会暴露问题,https://openjdk.org/jeps/201。复现方法,构建一个模块化工程,requires nacos-client就会复现问题

luxiao0000 avatar Sep 02 '24 03:09 luxiao0000

image image 2.0.0和2.4.1正好能做对比

luxiao0000 avatar Sep 02 '24 08:09 luxiao0000

还是没太理解。 2.0.0也使用了shaded,为什么没有问题呢。

KomachiSion avatar Sep 13 '24 02:09 KomachiSion

2.0.0依赖的gson还没有模块化,所以没有问题

luxiao0000 avatar Sep 13 '24 05:09 luxiao0000

2.0.0依赖的gson还没有模块化,所以没有问题

那有办法修复吗

KomachiSion avatar Sep 18 '24 03:09 KomachiSion

shaded排除掉所有的模块描述文件,因为也不确定后续哪个依赖突然模块化了

luxiao0000 avatar Sep 18 '24 03:09 luxiao0000

#12660

luxiao0000 avatar Sep 18 '24 04:09 luxiao0000