升级jdk11 程序包xxx不可见,程序包xxx已在模块 java.base 中声明, 但该模块未将它导出到未命名模块

升级jdk11后,IDEA本地构建报错如下

解决办法:

增加编译参数:--add-exports=java.base/sun.security.pkcs=ALL-UNNAMED

保存后本地代码不再编译报错。但是上环境发布仍然会报错。修改方式为:

对应模块pom.xml增加maven插件,增加

<compilerArgs>
     <arg>--add-exports=java.base/sun.security.pkcs=ALL-UNNAMED</arg>
</compilerArgs>

注意:

java.base/sun.security.pkcs是我这个项目需要修改的模块。修改时替换成你自己的模块名称。