gradle在IDEA中使用了JDK17运行springboot3.x等程序的时候使用了反射或ASM等会报错:module java.base does not “opens java.lang” to unnamed module,可以通过在IDEA中设置JVM参数解决此问题:
--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED
对于单元测试程序,设置了此参数无效,只能通过修改gradle.build脚本解决此问题,在gradle.build中添加如下配置即可:
test {
useJUnitPlatform()
// jvmArgs('--illegal-access=deny')
jvmArgs('--add-opens', 'java.base/java.lang=ALL-UNNAMED')
jvmArgs('--add-opens', 'java.base/java.lang.reflect=ALL-UNNAMED')
}