当前位置: 首页 > 知识库问答 >
问题:

Quarkus本机映像构建因未知参数而失败

太叔永新
2023-03-14

我正在构建一个夸克原生可执行映像,但由于未知参数,它失败了。我在属性文件中使用了quarkus.native.additional-build-args变量,但它不起作用。

我正在使用java 11。可以

SLF4J: Found binding in [jar:file:/home/quarkus/.m2/repository/org/jboss/slf4j/slf4j-jboss-logging/1.2.0.Final/slf4j-jboss-logging-1.2.0.Final.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/quarkus/.m2/repository/ch/qos/logback/logback-classic/1.1.1/logback-classic-1.1.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.jboss.slf4j.JBossLoggerFactory]
[INFO] [org.jboss.threads] JBoss Threads version 3.1.1.Final
[INFO] [io.quarkus.deployment.pkg.steps.JarResultBuildStep] Building native image source jar: /usr/src/app/target/quarkus-test-1.0.0-SNAPSHOT-native-image-source-jar/quarkus-test-1.0.0-SNAPSHOT-runner.jar
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] Building native image from /usr/src/app/target/quarkus-test-1.0.0-SNAPSHOT-native-image-source-jar/quarkus-test-1.0.0-SNAPSHOT-runner.jar
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] Running Quarkus native-image plugin on GraalVM Version 20.1.0 (Java Version 11.0.7)
[INFO] [io.quarkus.deployment.pkg.steps.NativeImageBuildStep] /opt/graalvm/bin/native-image -J-Djava.util.logging.manager=org.jboss.logmanager.LogManager -J-Dsun.nio.ch.maxUpdateArraySize=100 -J-Dvertx.logger-delegate-factory-class-name=io.quarkus.vertx.core.runtime.VertxLogDelegateFactory -J-Dvertx.disableDnsResolver=true -J-Dio.netty.leakDetection.level=DISABLED -J-Dio.netty.allocator.maxOrder=1 -J-Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true -J-Duser.language=en -J-Dfile.encoding=UTF-8 --initialize-at-run-time=com.wealdtech.hawk.HawkClient com.wealdtech.hawk.HawkCredential --allow-incomplete-classpath --initialize-at-build-time= -H:InitialCollectionPolicy=com.oracle.svm.core.genscavenge.CollectionPolicy\$BySpaceAndTime -H:+JNI -jar quarkus-test-1.0.0-SNAPSHOT-runner.jar -H:FallbackThreshold=0 -H:+ReportExceptionStackTraces -H:-AddAllCharsets -H:EnableURLProtocols=http,https --enable-all-security-services -H:NativeLinkerOption=-no-pie --no-server -H:-UseServiceLoaderFeature -H:+StackTrace quarkus-test-1.0.0-SNAPSHOT-runner
Error: Unknown argument: quarkus-test-1.0.0-SNAPSHOT-runner
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  21.640 s
[INFO] 
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:1.9.0.Final:build (default) on project quarkus-test: Failed to build quarkus application: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
[ERROR]     [error]: Build step io.quarkus.deployment.pkg.steps.NativeImageBuildStep#build threw an exception: java.lang.RuntimeException: Failed to build native image
[ERROR]     at io.quarkus.deployment.pkg.steps.NativeImageBuildStep.build(NativeImageBuildStep.java:307)
[ERROR]     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR]     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

有人有任何想法吗?谢谢!!!

共有2个答案

吕文林
2023-03-14

以防其他人在这上面掉头发,最后来到这里。我的构建也以类似的方式失败了:

building quarkus jar

Error: Unknown argument: <yada, yada...>

看着我的application.properties我有一些构建参数

quarkus.native.additional-build-args=\
  -H:+PrintClassInitialization,\
  --report-unsupported-elements-at-runtime,\
  --allow-incomplete-classpath,\  
  --initialize-at-run-time=a.b.c.d\\,\
  a.b.c.e\\,\
  a.b.c.f

那就没什么明显的了。但是仔细看:

  --allow-incomplete-classpath,\  

在后一行的末尾有两个空格字符,删除空格将其修复。哎哟!

康秋月
2023-03-14

当在applications.properties文件中使用quarkus.native.additional-build-args时,我也有同样的问题。我的问题是,我在--novalize-at-build-time参数中定义了多个包,用逗号分隔为:--staralize-at-build-time=javax.net.ssl,java.security

这需要屏蔽如下:--initializeat-build-time=javax.net.ssl\\,java.security

 类似资料:
  • 我有以下简化设置: 4)应用程序.属性 当我使用本机maven配置文件(mvn clean package-pnative)运行该文件时,我得到: 使用--report-unsupport-elements-at-runtime运行它也没有太大帮助。当我删除MyEntity类时,它在Mac+GRAALVM-CE-Java11-20.0.0上成功地编译为本机可执行文件

  • 在我的项目的根目录中,我发出了以下命令来创建一个特定于我的操作系统的本机可执行文件。有关详细信息,请参阅以下指南 这是输出。 本机映像生成失败,因为构建刚刚挂起。 我选择在主机上安装Graal VM,并选择非基于容器的方法,如下所示。 > ❯ brew安装——cask GRALVM/tap/GRALVM-ce-lts-java11 将Graal VM添加到JEnv管理的Java版本 ❯ jenv

  • 当我建立一个本土形象时,我面临着一个反思的问题 通用域名格式。神谕svm。主持。代替DeletedElementException:不支持的java字段。朗,同学们。newInstanceCallerCache是可访问的:此元素的声明类已被替换,但替换类中不存在此元素 我该怎么修?我的环境GraalVM 20和Zulu OpenJdk11 我的pom

  • 有可能在Java 16下构建本机Quarkus映像吗?没有找到任何操作说明。 不知何故,这应该是可能的,因为Oracle发布了对Java16的GraalVM支持(https://www.graalvm.org/release-notes/21_1/)

  • 我正在尝试使用Github自托管运行程序为我的qukus应用程序构建原生映像。 这对我来说在Github托管的跑步者上非常有用,但我想在自托管的跑步者上这样做,这样我们就不会浪费Github的预算。 当我更新我的工作流程以使用自我托管的跑步者时,我开始遇到这个奇怪的异常。 我使用的是GraalVM 22.0.0.2、Java 11.0.14、Maven 3.8.4和Quarkus 2.7.5 我尝

  • 我已经成功地用Quarkus/Graal构建了一个本机映像,我可以在终端中运行它(还没有容器)。但是,它会因“分段错误(堆芯转储)”消息而崩溃。如何获得有关错误的更多信息?是否有标志要传递给本机可执行文件或在构建映像时传递? 我使用的是GraalVM版本20.2.0(Java版本11.0.8) 任何帮助都是非常感激的。 谢谢