启用 Solon AOT 编译打包
启用 Solon AOT 编译打包后,在打包时会:
- 生成 solon 代理类代码文件(运行时,不再需要 ASM 介入)
- 生成 solon 类索引文件(项目类很多时,可以加速启动)
Solon AOT 编译,是 Solon Native 编译的一部分,也可以独立使用。使用条件要求:
- 使用 solon-maven-plugin 打包方式
- 要求 java 17+ (v3.7.2 后,不再限制 jdk 版本)
更多可参考:Solon AOT & Native 开发 / aot 项目编译示范
1、使用 solon-parent
<parent>
<groupId>org.noear</groupId>
<artifactId>solon-parent</artifactId>
<version>最新版本</version>
</parent>
以 maven 打包为例,启用配置文件 native,然后使用 maven 的 pakage 命令即可。
补充说明:
- 使用 maven:pakage 打包,会使用 AOT 编译,生成常规的 jar 包
- 使用 graalvm:native:build 打包,会使用 AOT 编译,且生成 graalvm image (具体参考专题资料)

2、没有使用 solon-parent
以 maven 打包为例,在 pom.xml 添加一个 profile。之后,参考上面的说明。
<profiles>
<profile>
<id>native</id>
<build>
<plugins>
<plugin>
<groupId>org.noear</groupId>
<artifactId>solon-maven-plugin</artifactId>
<version>${solon.version}</version>
<executions>
<execution>
<id>process-aot</id>
<goals>
<goal>process-aot</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon-aot</artifactId>
</dependency>
</dependencies>
</profile>
</profiles>