如何啟用?Java?AOT?編譯打包?Solon?項(xiàng)目(Solon?AOT)
1、Java 的 AOT(Ahead-Of-Time)
AOT(Ahead-Of-Time)編譯是與 JIT(Just-In-Time)相對(duì)的一種編譯方式。
在 AOT 模式下,Java 字節(jié)碼(Bytecode)在程序運(yùn)行之前,就被提前編譯為目標(biāo)平臺(tái)的本地機(jī)器代碼。
2、Solon AOT
Solon AOT 是 Java AOT 的增強(qiáng)模式??山柚萜髟谶\(yùn)行時(shí)收集相關(guān)的類信息,然后在打包時(shí)為有 “動(dòng)態(tài)代理需求的類” 生成對(duì)應(yīng)具體類(類名風(fēng)格,Xxx$$SolonAotProxy.class)。
使用條件要求:
- 使用 solon-maven-plugin 打包方式
- 要求 java 17+ (java 17 后才支持 AOT)
大概的構(gòu)建過(guò)程(過(guò)程為自動(dòng)):
編譯(生成 .class 文件) -> Solon AOT(運(yùn)行->收集->生成補(bǔ)充的 .class 文件) -> 打包
3、使用 solon-parent
<parent>
<groupId>org.noear</groupId>
<artifactId>solon-parent</artifactId>
<version>最新版本</version>
</parent>以 maven 打包為例,啟用配置文件 native(會(huì)自動(dòng)啟用一批配置),然后使用 maven 的 pakage 命令即可。
補(bǔ)充說(shuō)明:
- 使用 maven:pakage 打包,會(huì)使用 AOT 編譯,生成常規(guī)的 jar 包
- 使用 graalvm:native:build 打包,會(huì)使用 AOT 編譯,且生成 graalvm image (具體參考專題資料)

4、如果沒(méi)有使用 solon-parent
以 maven 打包為例,在 pom.xml 手動(dòng)添加一個(gè) native profile(名字便取,叫 AOT 也挺好的)。之后,參考上面的說(shuō)明。
<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>配置內(nèi)容說(shuō)明:
org.noear:solon-aot依賴包,封裝了 aot 的關(guān)鍵工作:收集類信息,生成補(bǔ)充類solon-maven-plugin:process-aot則是關(guān)聯(lián)編譯行為,在編譯后,再進(jìn)行 Solon AOT 二次編譯
到此這篇關(guān)于如何啟用 Java AOT 編譯打包 Solon 項(xiàng)目(Solon AOT)的文章就介紹到這了,更多相關(guān)Java AOT 編譯打包 Solon 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java中不定長(zhǎng)參數(shù)的實(shí)例用法
在本篇文章里小編給大家分享的是關(guān)于java中不定長(zhǎng)參數(shù)的使用方法以及相關(guān)代碼內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。2020-02-02
使用Mybatis實(shí)現(xiàn)分頁(yè)效果示例
大家好,本篇文章主要講的是使用Mybatis實(shí)現(xiàn)分頁(yè)效果示例,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12
Mybatis如何使用動(dòng)態(tài)語(yǔ)句實(shí)現(xiàn)批量刪除(delete結(jié)合foreach)
這篇文章主要介紹了Mybatis如何使用動(dòng)態(tài)語(yǔ)句實(shí)現(xiàn)批量刪除(delete結(jié)合foreach),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
Java排序算法三之歸并排序的遞歸與非遞歸的實(shí)現(xiàn)示例解析
這篇文章主要介紹了Java排序算法三之歸并排序的遞歸與非遞歸的實(shí)現(xiàn)示例解析,文章通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
Maven倉(cāng)庫(kù)的具體使用(本地倉(cāng)庫(kù)+遠(yuǎn)程倉(cāng)庫(kù))
Maven 在某個(gè)統(tǒng)一的位置存儲(chǔ)所有項(xiàng)目的構(gòu)件,這個(gè)統(tǒng)一的位置,我們就稱之為倉(cāng)庫(kù),本文主要介紹了Maven倉(cāng)庫(kù)的具體使用(本地倉(cāng)庫(kù)+遠(yuǎn)程倉(cāng)庫(kù)),感興趣的可以了解一下2023-11-11
解決在IDEA中創(chuàng)建多級(jí)package的問(wèn)題
這篇文章主要介紹了解決在IDEA中創(chuàng)建多級(jí)package的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
Spring Boot(四)之使用JWT和Spring Security保護(hù)REST API
這篇文章主要介紹了Spring Boot(四)之使用JWT和Spring Security保護(hù)REST API的相關(guān)知識(shí),需要的朋友可以參考下2017-04-04
Java小程序賽馬游戲?qū)崿F(xiàn)過(guò)程詳解
這篇文章主要介紹了Java小程序賽馬游戲?qū)崿F(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03

