通过agent构建生成GraalVM需要的reflect-config.json
Maven项目里添加plugin
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<version>0.9.28</version>
<configuration>
<mainClass>com.Main</mainClass> <!-- 主类全限定名 -->
<imageName>typha-win</imageName> <!-- 输出镜像名称 -->
<buildArgs>
--initialize-at-build-time=com.Main.class
--enable-all-security-services
--report-unsupported-elements-at-runtime
--initialize-at-run-time=com.example.SomeClass
-H:+ReportExceptionStackTraces
</buildArgs> <!-- 优化初始化时间 -->
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>META-INF/native-image/reflect-config.json</include>
</includes>
</resource>
</resources>
</configuration>
<executions>
<execution>
<goals>
<goal>build</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
</plugin>
使用JIT + agent的方式生成reflect-config.json
java -agentlib:native-image-agent=config-output-dir=src/main/resources/META-INF/native-image/ -cp "target/myapp-1.0.0-SNAPSHOT.jar;target/lib/*" com.Main
跑一遍所有功能测试,再关闭服务,src/main/resources/META-INF/native-image/会自动生成:reflect-config.json、resource-config.json等文件。
native构建本地镜像
mvn clean package -Pnative
更多Java技能,关注微信公众号“加瓦儿”不错过。

浙公网安备 33010602011771号