更快的Maven來了

Maven經常被拿來和Gradle做對比棺聊,最大的劣勢之一就是Maven構建慢耀销,GradleMaven構建速度快2到10倍,而如今Maven也可以更快了之景。Apache Maven團隊從GradleTakari(Maven生命周期優(yōu)化器)中獲得靈感對Maven進行了強化嗤疯,衍生出 maven-mvnd項目,今天胖哥帶你來嘗嘗鮮闺兢。

簡單介紹

mvnd并不是對Maven進行了重構,而是內置了Maven戏罢。它實際上是一個或者多個Maven守護進程屋谭,用來執(zhí)行實際的構建服務。一個守護進程實例可以為來自mvnd客戶端的多個連續(xù)請求提供Maven構建服務龟糕。當沒有空閑的守護進程時來支撐構建請求時桐磁,mvnd可以并行生成多個守護程序。

使用GraalVM代替JVM

mvnd之所以快是因為它使用了GraalVM替代了傳統(tǒng)的JVM讲岁,因此它啟動更快我擂,占用內存更少,而且在實行構建時不需要為每個構建啟動新的JVM缓艳。另外Maven插件在構建時不再需要多次加載校摩,而是緩存在多個構建中。SNAPSHOT版本的Maven插件不會被緩存阶淘。

支持JIT

GraalVMJIT(Just In Time)實時編譯特性也被運用到Maven構建作業(yè)中衙吩。JIT可以大大降低編譯時間,在重復構建過程中溪窒,JIT優(yōu)化代碼立即可用坤塞,也極大提高了構建效率冯勉。

并行構建

目前Maven 3的并行構建(parallel builds)還是實驗特性,而且要求使用的插件必須是線程安全的摹芙。而mvnd默認就支持使用多個CPU內核進行并行構建灼狰。當然如果你的源代碼不支持并行構建,也可以通過添加- T1 參數(shù)切換到串行構建浮禾。

簡單嘗試

接下來簡單嘗試一下mvnd交胚。

安裝

目前mvnd已經支持LinuxMacOS伐厌、Windows平臺承绸。你可以分別通過SDKMANHomebrew挣轨、Chocolatey這些包管理器進行安裝军熏。也可以直接去mvnd發(fā)行版?zhèn)}庫下載對應的二進制進行安裝。這里以Windows為例卷扮,我選擇Chocolatey安裝:

choco install mvndaemon

時間可能比較長一些荡澎。

配置

配置很簡單,只需要注意兩點

  • 如果不使用包管理器進行安裝的話請確保mvndbin目錄關聯(lián)到PATH晤锹。
  • 如果沒有配置或者不想配置JAVA_HOME環(huán)境變量的話請在~/.m2/mvnd.properties中設置java.home以指定Java目錄摩幔,例如:java.home=C:\\AdoptOpenJDK\\jdk-8。已經配置環(huán)境變量的請忽略該條鞭铆。

其它的配置項可參考mvnd配置或衡。

使用

安裝配置完畢后命令行執(zhí)行mvnd --version出現(xiàn)下列結果就表示安裝成功了。

mvnd --version
mvnd native client 0.7.1-windows-amd64 (97c587c11383a67b5bd0ff8388bd94c694b91c1e)
Terminal: org.jline.terminal.impl.jansi.win.JansiWinSysTerminal
Apache Maven 3.8.3 (ff8e977a158738155dc465c6a97ffaf31982d739)
Maven home: C:\Program Files\mvndaemon\mvnd-0.7.1-windows-amd64\mvn
Java version: 1.8.0_282, vendor: AdoptOpenJDK, runtime: C:\Program Files\AdoptOpenJDK\jdk-8.0.282.8-hotspot\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

為了降低學習成本mvnd的方式和傳統(tǒng)Maven類似车遂,mvn變成了mvnd封断,你也可以通過mvnd --help來查看完整的命令選項清單。

說實話并行構建就是快舶担,簡直坐火箭一般坡疼。另外,控制臺輸出也優(yōu)化了衣陶。

由于GraalVM的加持柄瑰,這個工具很可能會延長Maven的生命,避免過早被Gradle拉開優(yōu)勢剪况。對于我們來說教沾,這個項目可以觀望一下,看看Apache Maven官方的進一步動作拯欧。

關注公眾號:碼農小胖哥详囤,獲取更多資訊

個人博客:https://felord.cn

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子藏姐,更是在濱河造成了極大的恐慌隆箩,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件羔杨,死亡現(xiàn)場離奇詭異捌臊,居然都是意外死亡,警方通過查閱死者的電腦和手機兜材,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門理澎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人曙寡,你說我怎么就攤上這事糠爬。” “怎么了举庶?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵执隧,是天一觀的道長。 經常有香客問我户侥,道長镀琉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任蕊唐,我火速辦了婚禮屋摔,結果婚禮上,老公的妹妹穿的比我還像新娘替梨。我一直安慰自己钓试,他們只是感情好,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布副瀑。 她就那樣靜靜地躺著亚侠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪俗扇。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天箕别,我揣著相機與錄音铜幽,去河邊找鬼。 笑死串稀,一個胖子當著我的面吹牛除抛,可吹牛的內容都是我干的。 我是一名探鬼主播母截,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼到忽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起喘漏,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤护蝶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后翩迈,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體持灰,經...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年负饲,在試婚紗的時候發(fā)現(xiàn)自己被綠了堤魁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡返十,死狀恐怖妥泉,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情洞坑,我是刑警寧澤盲链,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站检诗,受9級特大地震影響匈仗,放射性物質發(fā)生泄漏。R本人自食惡果不足惜逢慌,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一悠轩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧攻泼,春花似錦火架、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至牛欢,卻和暖如春骡男,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背傍睹。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工隔盛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拾稳。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓吮炕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親访得。 傳聞我的和親對象是個殘疾皇子龙亲,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內容