启用 Java AOT 编译打包 Solon 项目(Solon AOT)
- 作者: 五速梦信息网
- 时间: 2026年04月20日 04:46
1、Java 的 AOT(Ahead-Of-Time)
AOT(Ahead-Of-Time)编译是与 JIT(Just-In-Time)相对的一种编译方式。 在 AOT 模式下,Java 字节码(Bytecode)在程序运行之前,就被提前编译为目标平台的本地机器代码。
2、Solon AOT
Solon AOT 是 Java AOT 的增强模式。可借助容器在运行时收集相关的类信息,然后在打包时为有 “动态代理需求的类” 生成对应具体类(类名风格,Xxx$$SolonAotProxy.class)。 使用条件要求:
- 使用 solon-maven-plugin 打包方式
- 要求 java 17+ (java 17 后才支持 AOT) 大概的构建过程(过程为自动):
编译(生成 .class 文件) -> Solon AOT(运行->收集->生成补充的 .class 文件) -> 打包
3、使用 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 (具体参考专题资料)

4、如果没有使用 solon-parent
以 maven 打包为例,在 pom.xml 手动添加一个 native profile(名字便取,叫 AOT 也挺好的)。之后,参考上面的说明。
<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>
配置内容说明:
org.noear:solon-aot依赖包,封装了 aot 的关键工作:收集类信息,生成补充类solon-maven-plugin:process-aot则是关联编译行为,在编译后,再进行 Solon AOT 二次编译
- 上一篇: 齐都临淄比长安还繁荣
- 下一篇: 气,这是最常用的,户外徒步也用的多
相关文章
-
齐都临淄比长安还繁荣
齐都临淄比长安还繁荣
- 互联网
- 2026年04月20日
-
七猫免费小说:无广告且会员解锁的优质阅读应用
七猫免费小说:无广告且会员解锁的优质阅读应用
- 互联网
- 2026年04月20日
-
七猫免费听书纯净版:多功能听书平台
七猫免费听书纯净版:多功能听书平台
- 互联网
- 2026年04月20日
-
气,这是最常用的,户外徒步也用的多
气,这是最常用的,户外徒步也用的多
- 互联网
- 2026年04月20日
-
汽车发动机亮黄灯是怎么回事(发动机亮黄灯怎么回事还能开吗)
汽车发动机亮黄灯是怎么回事(发动机亮黄灯怎么回事还能开吗)
- 互联网
- 2026年04月20日
-
千城软件库官网版 APP:丰富免费软件资源的优质平台
千城软件库官网版 APP:丰富免费软件资源的优质平台
- 互联网
- 2026年04月20日




