解決Maven多模塊編譯慢的問(wèn)題
Maven多模塊編譯慢
最近在部署項(xiàng)目時(shí)發(fā)現(xiàn),Maven編譯打包相當(dāng)耗時(shí),比之前項(xiàng)目用Gradle慢了很多倍,特別是對(duì)于WEB工程,打war包花的時(shí)間很長(zhǎng),在unix主機(jī)下一般會(huì)用到3到4分鐘,如果有多個(gè)WEB工程,那簡(jiǎn)直不能忍受,經(jīng)過(guò)查找資料并結(jié)合本人真實(shí)驗(yàn)證,原本編譯打包需要8分鐘的項(xiàng)目,優(yōu)化編譯后時(shí)間減少至34秒。
如下圖:

其中下面標(biāo)紅兩個(gè)工程為WEB工程。下面來(lái)說(shuō)一下進(jìn)行了哪些優(yōu)化:
- 1、增加跳過(guò)測(cè)試代碼的編譯命令 -Dmaven.test.skip=true ;
- 2、增加編譯-Dmaven.compile.fork=true 參數(shù),用以指明多線程進(jìn)行編譯;
- 3、如果你用的Maven是3.×以上版本,可以增加 -T 1C 參數(shù),表示每個(gè)CPU核心跑一個(gè)工程;
完整命令如下
mvn clean package -T 1C -Dmaven.test.skip=true -Dmaven.compile.fork=true
Maven多模塊編譯中遇到的坑
一、概述
Maven使用過(guò)程中,如果使用多model的形式組織項(xiàng)目,單個(gè)模塊之間是相互獨(dú)立的;編譯整個(gè)root目錄時(shí)會(huì)對(duì)每個(gè)模塊都進(jìn)行統(tǒng)一編譯。單單對(duì)某個(gè)模塊進(jìn)行編譯,該模塊不會(huì)對(duì)其他模塊進(jìn)行編譯,即便是其引用的模塊。
二、坑描述和解決方法
踩坑描述
在對(duì)一個(gè)通用jar包進(jìn)行打包時(shí),該模塊對(duì)其他模塊進(jìn)行了引用,由于引用模塊的代碼進(jìn)行了修改,在使用該包的過(guò)程成老是出現(xiàn)錯(cuò)誤;
解決方法
對(duì)root目錄進(jìn)行打包,這樣整個(gè)項(xiàng)目就會(huì)重新編譯,修改的依賴代碼就可以更新了;
或者是把引用模塊重新編譯,install一下,然后在編譯模塊時(shí)重新引用一下。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JDBC連接Mysql的5種方式實(shí)例總結(jié)
JDBC是Java DataBase Connectivity技術(shù)的簡(jiǎn)稱,是一種可用于執(zhí)行 SQL語(yǔ)句的Java API,下面這篇文章主要給大家介紹了關(guān)于JDBC連接Mysql的5種方式,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04
Unicode、UTF-8 和 ISO8859-1區(qū)別解析
這篇文章主要介紹了Unicode、UTF-8 和 ISO8859-1到底有什么區(qū)別,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-01-01
Java While循環(huán) do-while循環(huán)用法
循環(huán)語(yǔ)句就是讓計(jì)算機(jī)根據(jù)條件做循環(huán)計(jì)算,在條件滿足時(shí)繼續(xù)循環(huán),條件不滿足時(shí)退出循環(huán),需要的朋友可以參考下2020-11-11
Java中JavaBean對(duì)象和Map的互相轉(zhuǎn)換方法實(shí)例
為什么需要將javaBean和map進(jìn)行轉(zhuǎn)換,在很多應(yīng)用場(chǎng)景中,需要將key=value形式的數(shù)據(jù)與javaBean對(duì)象相互轉(zhuǎn)換,下面這篇文章主要給大家介紹了關(guān)于Java中JavaBean對(duì)象和Map的互相轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下2022-11-11
簡(jiǎn)單講解Java的Socket網(wǎng)絡(luò)編程的多播與廣播實(shí)現(xiàn)
這篇文章主要介紹了Java的Socket網(wǎng)絡(luò)編程的多播與廣播實(shí)現(xiàn),包括網(wǎng)絡(luò)編程發(fā)送和接受數(shù)據(jù)的一些基礎(chǔ)知識(shí)整理,需要的朋友可以參考下2016-01-01
elasticsearch索引index之engine讀寫控制結(jié)構(gòu)實(shí)現(xiàn)
這篇文章主要為大家介紹了elasticsearch索引index之engine讀寫控制結(jié)構(gòu)實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04

