登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
每日签到
每天签到奖励2圆-6圆
发帖说明
VIP申请
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
VIP申请
VIP网盘
网盘
联系我们
每日签到
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
启用 Java AOT 编译打包 Solon 项目(Solon AOT) ...
启用 Java AOT 编译打包 Solon 项目(Solon AOT)
[ 复制链接 ]
髡芯
2025-6-5 10:46:22
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>
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>
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>
solon-aot</artifactId>
</dependency>
</dependencies>
</profile>
</profiles>
复制代码
配置内容说明:
org.noear:solon-aot 依赖包,封装了 aot 的关键工作:收集类信息,生成补充类
solon-maven-plugin:process-aot 则是关联编译行为,在编译后,再进行 Solon AOT 二次编译
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
AOT
Solon
启用
Java
编译
相关帖子
Java版本兼容性:JDK 21的SDK在JDK 1.8使用
Java线程池的几个常见问题
我一个写Java的,怎么就开始玩K8s和Jenkins了?!
突破层级壁垒:Java通过递归实现目录结构的扁平化解析
Java 8 终于要被淘汰了!带你速通 Java 8~24 新特性 | 又能跟面试官吹牛皮了
技术面:Java并发(线程池、ForkJoinPool)
无GC的Java创新设计思路:作用域引用式自动内存管理
预编译出错shell
漏洞实战--java反序列化--用友NC UserAuthenticationServlet
技术面:Java并发(线程同步、死锁、多线程编排)
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
Java版本兼容性:JDK 21的SDK在JDK 1.8使用
0
961
庇床铍
2025-09-03
业界
Java线程池的几个常见问题
0
381
郏琼芳
2025-09-04
业界
我一个写Java的,怎么就开始玩K8s和Jenkins了?!
0
585
役魅肋
2025-09-04
安全
突破层级壁垒:Java通过递归实现目录结构的扁平化解析
0
44
愆蟠唉
2025-09-04
安全
Java 8 终于要被淘汰了!带你速通 Java 8~24 新特性 | 又能跟面试官吹牛皮了
0
730
任修
2025-09-05
业界
技术面:Java并发(线程池、ForkJoinPool)
0
146
揉幽递
2025-09-05
业界
无GC的Java创新设计思路:作用域引用式自动内存管理
0
866
昝梓菱
2025-09-05
程序
预编译出错shell
0
19
新程序
2025-09-07
安全
漏洞实战--java反序列化--用友NC UserAuthenticationServlet
0
655
锦惺
2025-09-09
业界
技术面:Java并发(线程同步、死锁、多线程编排)
0
973
丧血槌
2025-09-10
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
髡芯
2025-6-5 10:46:22
关注
0
粉丝关注
16
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
杭环
9988
凶契帽
9988
4
氛疵
9988
5
黎瑞芝
9988
6
猷咎
9986
7
里豳朝
9986
8
肿圬后
9986
9
蝓俟佐
9984
10
虽裘侪
9984
查看更多