构建原生 quarkus 失败的原因是什么

what's reason building native quarkus fails

正在尝试构建原生 quarkus,如果我添加 json 路径 https://github.com/json-path/JsonPath

会出现错误
Call path from entry point to java.lang.ClassLoader.defineClass(String, byte[], int, int, ProtectionDomain): 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:1015)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:878)
    at net.minidev.asm.DynamicClassLoader.defineClass(DynamicClassLoader.java:86)
    at net.minidev.asm.BeansAccessBuilder.bulid(BeansAccessBuilder.java:313)
    at net.minidev.asm.BeansAccess.get(BeansAccess.java:111)
    at net.minidev.json.reader.BeansWriterASM.writeJSONString(BeansWriterASM.java:17)

或使用选项 --report-unsupported-elements-at-runtime

    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:603)
    at java.base/java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1006)
    at com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:480)
    at com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:349)
    at com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:508)
    at com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:114)
    at com.oracle.svm.hosted.NativeImageGeneratorRunner$JDK9Plus.main(NativeImageGeneratorRunner.java:537)
Caused by: java.lang.NoClassDefFoundError: javax/security/jacc/EJBMethodPermission

有什么我可以解决的吗?或者这是一个错误? 使用 docker 编译,它在 jvm 模式下工作

不查看库代码很难判断。

Quarkus 尽最大努力集成库并通过添加原生模式所需的部分使它们在原生模式下工作。对于本机模式限制,请检查此 link:https://www.graalvm.org/reference-manual/native-image/Limitations/

有些库无需额外配置即可开箱即用。其他需要额外配置以符合原生镜像规则。

似乎库正在尝试将 类 动态添加到类加载器中,由于封闭世界假设,GraalVM 不支持此操作,除非 类 在构建时注册。