使用Gluon的maven-client-plugin,当运行mvn client:compile时,如何添加Graalvm标志,如-initialize-at-run-time。

问题描述 投票:0回答:1

开发环境。

Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 11.0.6, vendor: Oracle Corporation, runtime: /home/linuxlp/opt/graalvm/graalvm-svm-linux-20.1.0-ea+28
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.4.0-31-generic", arch: "amd64", family: "unix"

我的应用程序使用Reactor Netty作为客户端http rest服务。io.netty库正在产生INFO错误,因为其中一些类在构建时被初始化,但它们需要在运行时被初始化。有一个Graalvm标志--initialize-at-run-time,我想试试,但我不知道如何实现它。我试着在一个配置文件 "initruntime "中实现它,并把这个文件放在resourcesMETA-INFsubstrateconfig目录下,但没有成功。下面是client-debug0.log文件的一部分,显示了其中一个异常。

[Sun May 24 18:38:16 EDT 2020][INFO] [SUB] Error: Class initialization of io.netty.handler.ssl.JettyNpnSslEngine failed. Use the option --initialize-at-run-time=io.netty.handler.ssl.JettyNpnSslEngine to explicitly request delayed initialization of this class.
javafx maven-3 gluon-mobile graalvm-native-image
1个回答
0
投票

你可以把这个命令添加到本地图像命令列表中,像这样。

<nativeImageArgs>
    <nativeImageArg>--initialize-at-build-time=com.mycompany.main.internal.NativeImageStaticInitializer</nativeImageArg>
</nativeImageArgs>
© www.soinside.com 2019 - 2024. All rights reserved.