通过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技能,关注微信公众号“加瓦儿”不错过。

posted @ 2025-05-27 07:28  漠孤烟  阅读(104)  评论(0)    收藏  举报