Java高性能新一代構(gòu)建工具M(jìn)aven-mvnd(實(shí)踐可行版)
Maven-mvnd介紹
Maven 的優(yōu)點(diǎn)是穩(wěn)定可靠,在絕大多數(shù)的項(xiàng)目上工作良好,社區(qū)生態(tài)很完善,幾乎所有的 Java 開發(fā)者都在用。Maven 的缺點(diǎn)是,對(duì)于大一點(diǎn)的項(xiàng)目來說,構(gòu)建太慢了。有時(shí)候只能在服務(wù)器端完成構(gòu)建 ,心酸呀。
Gradle 的優(yōu)點(diǎn)是足夠的靈活,構(gòu)建速度也會(huì)更快一點(diǎn),因?yàn)槭褂昧撕笈_(tái)進(jìn)程和緩存機(jī)制。Gradle 的缺點(diǎn)是版本迭代速度太快,社區(qū)跟不上,對(duì)于初學(xué)者來說,還是有一定的學(xué)習(xí)曲線。
所有是否有一種能快速構(gòu)建Java項(xiàng)目的工具時(shí),今天重點(diǎn)推薦maven-mvnd,是Apache Maven團(tuán)隊(duì)借鑒了Gradle和Takari的優(yōu)點(diǎn),衍生出來的更快的構(gòu)建工具,maven的強(qiáng)化版,解決Maven構(gòu)建慢的問題,又不需要重新學(xué)習(xí),懂Maven你就能駕馭Maven-mvnd。
maven-mvnd 特性:
- 嵌入 Maven (所以不需要單獨(dú)安裝 Maven);maven 過渡到 maven-mvnd的過程中實(shí)現(xiàn) 無縫切換!所以不需要再安裝maven或進(jìn)行復(fù)雜的配置更改。
- 實(shí)際的構(gòu)建發(fā)生在一個(gè)長期存在的后臺(tái)進(jìn)程中,也就是守護(hù)進(jìn)程。如果沒有為構(gòu)建請求服務(wù)的空閑守護(hù)進(jìn)程,則可以并行產(chǎn)生多個(gè)守護(hù)進(jìn)程。
- 一個(gè)守護(hù)進(jìn)程實(shí)例可以處理來自 mvnd 客戶機(jī)的多個(gè)連續(xù)請求。
- 使用 GraalVM 構(gòu)建的本地可執(zhí)行文件。與傳統(tǒng)的 JVM 相比,它啟動(dòng)更快,使用的內(nèi)存更少。
這種架構(gòu)帶來的優(yōu)勢有:
- 運(yùn)行實(shí)際構(gòu)建的 JVM 不需要為每個(gè)構(gòu)建重新啟動(dòng),節(jié)省時(shí)間。
- JVM 中的實(shí)時(shí)(JIT)編譯器生成的本機(jī)代碼也保留了下來。與 Maven 相比,JIT 編譯花費(fèi)的時(shí)間更少。在重復(fù)構(gòu)建過程中,JIT 優(yōu)化的代碼可以立即使用。這不僅適用于來自 Maven 插件和 Maven Core 的代碼,也適用于來自 JDK 本身的所有代碼。
使用步驟
下載
https://github.com/mvndaemon/mvnd/releases
安裝
直接解壓。然后配置環(huán)境變量:
- JAVA_HOME
- MAVEN_HOME
- MAVEN_MVND_HOME
將 bin 目錄添加到 PATH,注意前提條件JAVA_HOME是存在,如果沒有配置JAVA_HOME
測試
mvnd -v
使用
在使用上和Maven一樣,參數(shù)也一致。
Maven 使用mvn clean package
;使用Maven-mvnd 只需要變成mvnd clean package
即可,其他同理。
配置修改
為了最小程度的兼容原來的Maven,可以使用原來的setting.xml
打開 Maven-mvnd 安裝目錄下 的/conf/mvnd.properties
文件,在文件最后一行,修改如下:
如果沒有配置JAVA_HOME也可以指定Java JDK路徑:
maven.settings=F:/javaee/apache-maven-3.6.3/conf/settings.xml
打包對(duì)比
# maven 打包命令 mvn clean package '-Dmaven.test.skip=true' # mvnd 打包命令 mvnd clean package '-Dmaven.test.skip=true'
子項(xiàng)目越多,相對(duì)速度更快的趨勢。
總的來說,如果項(xiàng)目模塊很多,可以嘗試使用 mvnd 進(jìn)行輔助打包,比如 測試、生產(chǎn),可以節(jié)省很多時(shí)間;
到此這篇關(guān)于新一代Java高性能構(gòu)建工具M(jìn)aven-mvnd【實(shí)踐可行版】的文章就介紹到這了,更多相關(guān)Java構(gòu)建工具M(jìn)aven-mvnd內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java后臺(tái)開發(fā)之表單提交之前驗(yàn)證
這篇文章主要介紹了Java后臺(tái)開發(fā)之表單提交之前驗(yàn)證的實(shí)現(xiàn)代碼,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友參考下吧2017-02-02Java線程的并發(fā)工具類實(shí)現(xiàn)原理解析
本文給大家講解Java線程的并發(fā)工具類的一些知識(shí),通過適用場景分析大數(shù)據(jù)量統(tǒng)計(jì)類任務(wù)的實(shí)現(xiàn)原理和封裝,多個(gè)示例代碼講解的非常詳細(xì),對(duì)java線程并發(fā)工具類相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)下吧2021-06-06Mapper.xml中查詢返回帶有List屬性的實(shí)體類結(jié)果問題
這篇文章主要介紹了Mapper.xml中查詢返回帶有List屬性的實(shí)體類結(jié)果問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06FreeMarker如何調(diào)用Java靜態(tài)方法及靜態(tài)變量方法
這篇文章主要介紹了FreeMarker如何調(diào)用Java靜態(tài)方法及靜態(tài)變量方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12Spring Security和自定義filter的沖突導(dǎo)致多執(zhí)行的解決方案
這篇文章主要介紹了Spring Security和自定義filter的沖突導(dǎo)致多執(zhí)行的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06利用openoffice+jodconverter-code-3.0-bate4實(shí)現(xiàn)ppt轉(zhuǎn)圖片
這篇文章主要為大家詳細(xì)介紹了利用openoffice+jodconverter-code-3.0-bate4實(shí)現(xiàn)ppt轉(zhuǎn)圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07Springboot POI導(dǎo)出Excel(瀏覽器)
這篇文章主要為大家詳細(xì)介紹了Springboot POI導(dǎo)出Excel,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05