Amazon Corretto 11,Spring Boot 和 PowerMock - 测试失败

Amazon Coretto 11, Spring Boot and PowerMock - tests failing

我有一个基于 java 的 Spring 引导项目,它使用 PowerMock 在必要时模拟静态方法和构造函数调用 由于升级到最新版本的 IntelliJ - 我需要使用大于 JDK 8 的 JDK 版本 我搬到了 Amazon Coretto,因为我想在 AWS Elastic Beanstalk 的最新支持 JDK 上部署我的应用程序 当我升级并 运行 我的测试时,我开始遇到问题 关注此线程后 - https://github.com/java-decompiler/jd-gui/issues/187 并使用此 PowerMockIgnore 语法

@PowerMockIgnore("javax.management.", "com.sun.org.apache.xerces.", "javax.xml.", "org.xml.", "org.w3c.dom.", "com.sun.org.apache.xalan.", "javax.activation.*", "javax.xml.transform.*", "com.sun.org.apache.xalan.*")

我收到这个错误

java.lang.RuntimeException: java.lang.reflect.InaccessibleObjectException: Unable to make protected java.lang.Class jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(java.lang.String,boolean) throws java.lang.ClassNotFoundException accessible: module java.base does not "opens jdk.internal.loader" to unnamed module @d5ce97f
    at org.powermock.core.classloader.DeferSupportingClassLoader.findResource(DeferSupportingClassLoader.java:154)
    at java.base/java.lang.ClassLoader.findResource(ClassLoader.java:1342)
    at java.base/java.lang.Module.getResourceAsStream(Module.java:1575)
    at kotlin.reflect.jvm.internal.impl.serialization.deserialization.builtins.BuiltInsResourceLoader.loadResource(BuiltInsResourceLoader.java:27)
    at kotlin.reflect.jvm.internal.impl.descriptors.runtime.components.ReflectKotlinClassFinder.findBuiltInsData(ReflectKotlinClassFinder.kt:52)
    at kotlin.reflect.jvm.internal.impl.builtins.jvm.JvmBuiltInsPackageFragmentProvider.findPackage(JvmBuiltInsPackageFragmentProvider.kt:60)

这让我难住了好几天了。任何人都可以就我可以尝试的内容提供任何进一步的建议吗

问候 达米恩

更改 Gradle 中的版本:

testCompile('org.springframework.boot:spring-boot-starter-test') {
        exclude group: "org.mockito", module: "mockito-core"
    }
    testCompile("org.mockito:mockito-core:2.23.4")

我找不到让 PowerMock 与 Java11 一起工作的解决方案,所以我已将其从我的项目中删除