【问题标题】:quarkus fails to compile to nativequarkus 无法编译为本机
【发布时间】:2022-01-11 11:16:16
【问题描述】:

我正在尝试将一个用 graalvm java 和 quarkus 编写的小型 lambda 函数编译为本机,但我得到了这个异常。我已经尝试为 2 个类添加标志 --allow-incomplete-classpath 和 --initialize-at-run-time ,但这并没有将编译修复为原生。有人知道可以尝试什么来解决此错误吗?

执行的命令

    ./gradlew --stacktrace -b ./build.gradle build -Dquarkus.package.type=native -Dquarkus.native.native-image-xmx=3g -Dquarkus.native.additional-build-args='--allow-incomplete-classpath,--trace-object-instantiation=java.util.Random,--initialize-at-run-time="com.amazonaws.ClientConfiguration,org.apache.http.impl.auth.NTLMEngineImpl"'

build.gradle 依赖项:

    dependencies {
        compileOnly 'org.projectlombok:lombok:1.18.20'
        annotationProcessor 'org.projectlombok:lombok:1.18.20'
    
        implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")
        implementation 'io.quarkus:quarkus-amazon-lambda'
        implementation 'io.quarkus:quarkus-amazon-sns'
        implementation 'io.quarkus:quarkus-amazon-kms'
        implementation 'javax.activation:activation:1.1.1'
        implementation 'com.amazonaws:aws-java-sdk-kms:1.11.483'
    
        testImplementation 'io.rest-assured:rest-assured'
        testImplementation 'io.quarkus:quarkus-junit5-mockito'
        testImplementation 'io.quarkus:quarkus-junit5'
    }

错误:

* Exception is:
#10 65.67 org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':quarkusBuild'.
#10 65.67       at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:200)
#10 65.67       at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:263)
#10 65.67       at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:198)
...
...
#10 65.75       at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
#10 65.75       at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
#10 65.75       at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
#10 65.75 Caused by: java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
#10 65.75       [error]: Build step io.quarkus.deployment.pkg.steps.NativeImageBuildStep#build threw an exception: java.lang.RuntimeException: Failed to build native image
#10 65.75       at io.quarkus.deployment.pkg.steps.NativeImageBuildStep.build(NativeImageBuildStep.java:236)
#10 65.75       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
#10 65.75       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
#10 65.75       at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
#10 65.75       at java.base/java.lang.reflect.Method.invoke(Method.java:566)
#10 65.75       at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:887)
#10 65.75       at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
#10 65.75       at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
#10 65.75       at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
#10 65.75       at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)
#10 65.75       at java.base/java.lang.Thread.run(Thread.java:829)
#10 65.75       at org.jboss.threads.JBossThread.run(JBossThread.java:501)
#10 65.75 Caused by: java.lang.RuntimeException: Image generation failed. Exit code: 1
#10 65.75       at io.quarkus.deployment.pkg.steps.NativeImageBuildStep.imageGenerationFailed(NativeImageBuildStep.java:372)
#10 65.75       at io.quarkus.deployment.pkg.steps.NativeImageBuildStep.build(NativeImageBuildStep.java:215)
#10 65.75       ... 11 more
#10 65.75
#10 65.75       at io.quarkus.runner.bootstrap.AugmentActionImpl.runAugment(AugmentActionImpl.java:330)
#10 65.76       at io.quarkus.runner.bootstrap.AugmentActionImpl.createProductionApplication(AugmentActionImpl.java:175)
#10 65.76       at io.quarkus.gradle.tasks.QuarkusBuild.buildQuarkus(QuarkusBuild.java:136)
#10 65.76       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
#10 65.76       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
#10 65.76       at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
#10 65.76       at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
#10 65.76       at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
#10 65.76       at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
#10 65.76       at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
#10 65.76       at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.run(ExecuteActionsTaskExecuter.java:555)
#10 65.76       at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
...
...
#10 65.86       at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
#10 65.86       at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
#10 65.86       at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
#10 65.87       at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
#10 65.87 Caused by: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
#10 65.87       [error]: Build step io.quarkus.deployment.pkg.steps.NativeImageBuildStep#build threw an exception: java.lang.RuntimeException: Failed to build native image
#10 65.87       at io.quarkus.deployment.pkg.steps.NativeImageBuildStep.build(NativeImageBuildStep.java:236)
#10 65.87       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
#10 65.87       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
#10 65.87       at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
#10 65.87       at java.base/java.lang.reflect.Method.invoke(Method.java:566)
#10 65.87       at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:887)
#10 65.87       at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
#10 65.87       at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
#10 65.87       at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
#10 65.87       at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)
#10 65.87       at java.base/java.lang.Thread.run(Thread.java:829)
#10 65.87       at org.jboss.threads.JBossThread.run(JBossThread.java:501)
#10 65.87 Caused by: java.lang.RuntimeException: Image generation failed. Exit code: 1
#10 65.87       at io.quarkus.deployment.pkg.steps.NativeImageBuildStep.imageGenerationFailed(NativeImageBuildStep.java:372)
#10 65.87       at io.quarkus.deployment.pkg.steps.NativeImageBuildStep.build(NativeImageBuildStep.java:215)
#10 65.87       ... 11 more
#10 65.87
#10 65.87       at io.quarkus.builder.Execution.run(Execution.java:116)
#10 65.87       at io.quarkus.builder.BuildExecutionBuilder.execute(BuildExecutionBuilder.java:79)
#10 65.88       at io.quarkus.deployment.QuarkusAugmentor.run(QuarkusAugmentor.java:161)
#10 65.88       at io.quarkus.runner.bootstrap.AugmentActionImpl.runAugment(AugmentActionImpl.java:328)
#10 65.88       ... 200 more
#10 65.88 Caused by: java.lang.RuntimeException: Failed to build native image
#10 65.88       at io.quarkus.deployment.pkg.steps.NativeImageBuildStep.build(NativeImageBuildStep.java:236)
#10 65.88       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
#10 65.88       at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
#10 65.88       at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
#10 65.88       at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:887)
#10 65.88       at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
#10 65.88       at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
#10 65.88       at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
#10 65.88       at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)
#10 65.88       at org.jboss.threads.JBossThread.run(JBossThread.java:501)
#10 65.88 Caused by: java.lang.RuntimeException: Image generation failed. Exit code: 1
#10 65.88       at io.quarkus.deployment.pkg.steps.NativeImageBuildStep.imageGenerationFailed(NativeImageBuildStep.java:372)
#10 65.88       at io.quarkus.deployment.pkg.steps.NativeImageBuildStep.build(NativeImageBuildStep.java:215)
#10 65.88       ... 9 more
#10 65.88
#10 65.88
#10 65.88 * Get more help at https://help.gradle.org
#10 65.88
#10 65.88 Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
#10 65.88 Use '--warning-mode all' to show the individual deprecation warnings.
#10 65.88 See https://docs.gradle.org/6.7.1/userguide/command_line_interface.html#sec:command_line_warnings
#10 65.88
#10 65.88 BUILD FAILED in 1m 4s
#10 65.88 10 actionable tasks: 10 executed

【问题讨论】:

    标签: java lambda quarkus quarkus-native


    【解决方案1】:

    所以我想通了。 Quarkus 不适用于 KMS 客户端的初始实现: 实现 'com.amazonaws:aws-java-sdk-kms:1.11.483'

    你应该使用 实现 'io.quarkus:quarkus-amazon-kms'

    【讨论】:

      猜你喜欢
      • 2021-01-10
      • 2012-10-07
      • 2020-04-19
      • 1970-01-01
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多