還在手動(dòng)搭 Maven 多模塊?這款I(lǐng)DEA插件讓我效率提升10倍(真實(shí)體驗(yàn))
引言
最近帶團(tuán)隊(duì)做新項(xiàng)目,發(fā)現(xiàn)剛畢業(yè)的學(xué)弟還在用最原始的方式搭建Maven多模塊項(xiàng)目——手動(dòng)建文件夾、寫pom依賴、調(diào)整目錄結(jié)構(gòu)...整整折騰了一下午,連基礎(chǔ)框架都沒搭好。
不光是新人,我們這些工作好幾年的老鳥每次開新項(xiàng)目也得重復(fù)這些機(jī)械操作。就拿我們團(tuán)隊(duì)來說,之前搭個(gè)基礎(chǔ)框架平均要40分鐘,還經(jīng)常配錯(cuò)依賴。所以我花了兩周業(yè)余時(shí)間擼了這個(gè)插件,現(xiàn)在團(tuán)隊(duì)建項(xiàng)目都是"一鍵生成",30秒搞定,簡直不要太香!
說多了都是淚(開發(fā)背景)
為啥要折騰這破插件?還不是被那些破事逼的?? 給你們瞅個(gè)真實(shí)血淚史:
上周帶的實(shí)習(xí)生搭項(xiàng)目,就四個(gè)模塊(api、service、pojo、common),活生生卡了一下午。不是把依賴寫反了(service依賴api這種騷操作都整出來了),就是目錄建得跟打仗似的,最后還是我親自操刀重構(gòu)的。當(dāng)時(shí)我就拍桌子了:這種重復(fù)到吐的活兒,就不能自動(dòng)化搞定?
其實(shí)不僅是新手,就連有經(jīng)驗(yàn)的開發(fā)者每次新建項(xiàng)目時(shí),也難免要重復(fù)這些機(jī)械操作。于是我開發(fā)了這個(gè)插件,把這些重復(fù)性工作自動(dòng)化,讓項(xiàng)目搭建時(shí)間從小時(shí)級(jí)縮短到分鐘級(jí)。
插件核心功能
別看插件不大,解決的可都是咱們天天踩的坑:
? 真正的一鍵生成: 輸入模塊名就能自動(dòng)創(chuàng)建全套結(jié)構(gòu),連pom依賴都幫你配好
? 智能依賴關(guān)聯(lián): 按業(yè)務(wù)順序輸入模塊名(如api→service→pojo),自動(dòng)建立依賴關(guān)系
? 完全自定義: 模塊名、Java版本隨便改,生成的結(jié)構(gòu)完全符合公司規(guī)范
? 自帶最佳實(shí)踐: 默認(rèn)生成的目錄結(jié)構(gòu)和配置都是Maven官方推薦的標(biāo)準(zhǔn)
? 零配置啟動(dòng): 自動(dòng)生成.gitignore和README,拉下來就能直接開發(fā)
開裝?。▋煞N姿勢)
懶人法:插件市場一鍵裝(推薦新手)
這個(gè)目前還在審核中,所以你需要先手動(dòng)下載jar包,再安裝。等審核通過后,就可以直接在插件市場搜索安裝了。
? 打開IDEA,按Ctrl+Alt+S打開設(shè)置(Mac用戶用Cmd+,)
? 點(diǎn)左側(cè)Plugins,頂部切換到Marketplace
? 搜索框敲Maven-aggregation Quickstart(輸前幾個(gè)字就能搜到)
? 點(diǎn)Install,等進(jìn)度條走完重啟IDEA就好
如圖所示:
圖片
方法二:手動(dòng)安裝(離線環(huán)境)
從插件倉庫下載最新的jar包
同樣打開插件設(shè)置頁面,點(diǎn)右上角小齒輪 ??
選Install Plugin from Disk...,找到下載的jar包就行
注意:IDEA版本得2020.3以上,太老的版本可能不兼容(別問怎么知道的,踩過坑??)
注意:插件需要IntelliJ IDEA 2020.3及以上版本,如果你使用的是較舊版本,建議先升級(jí)IDEA
廢話不多說,開干!(實(shí)戰(zhàn)環(huán)節(jié))
光吹牛逼沒用,上手操作才是王道。拿個(gè)電商項(xiàng)目舉例子,看看這插件到底多好用:
1. 打開創(chuàng)建向?qū)?/h4>
重啟IDEA后,首先創(chuàng)建項(xiàng)目 ,創(chuàng)建一個(gè)空的工程,選擇Empty Project,點(diǎn)File > New就能看到Create Maven Aggregation Project選項(xiàng)(在New Project下面一點(diǎn))
如圖所示:
圖片
也可以通過模塊名右擊 :New - Create Maven Aggregation Project。如圖所示:
圖片
2. 填寫項(xiàng)目信息
就一個(gè)配置頁面,填這幾項(xiàng)就行:
? GroupId: 公司/組織域名倒寫,比如我們公司用com.wandong
? ArtifactId: 項(xiàng)目名,小寫無空格,比如user-center
? Version: 默認(rèn)1.0.0就行,后期再改
? 模塊名稱: 這個(gè)最重要!按業(yè)務(wù)順序填,用逗號(hào)隔開,比如api,``service,pojo,common
? Java版本: 建議選11或17,太新的版本可能有兼容性問題
如圖所示:
圖片
?? 小技巧:模塊順序很重要!插件會(huì)按你輸入的順序自動(dòng)建立依賴關(guān)系,比如api依賴service,service依賴pojo
小技巧:模塊名稱最好遵循業(yè)務(wù)領(lǐng)域劃分,如api(接口層)、service(服務(wù)層)、pojo(實(shí)體類)、common(公共組件)
3. 坐等收菜
最后一步點(diǎn)Finish,然后就可以摸魚等結(jié)果了——插件會(huì)自動(dòng)幫你把所有模塊和配置文件都建好。我那用了三年的老筆記本也就20秒搞定,新電腦估計(jì)10秒內(nèi)就能完事。創(chuàng)建完的項(xiàng)目長這樣:
ecommerce-platform/
├── api/
├── service/
├── pojo/
├── common/
├── pom.xml // 父pom文件
├── README.md
└── .gitignore如圖所示:
圖片
圖片
最香的是每個(gè)模塊都是標(biāo)準(zhǔn)Maven結(jié)構(gòu),src/main/java、src/test/resources這些文件夾全都給你建好,再也不用手動(dòng)建目錄了(我以前每次都要漏建一兩個(gè)):
module-name/
├── src/
│ ├── main/
│ │ ├── java/ // 源代碼目錄
│ │ └── resources/ // 資源文件目錄
│ └── test/
│ ├── java/ // 測試代碼目錄
│ └── resources/ // 測試資源目錄
└── pom.xml // 模塊pom文件老司機(jī)才知道的騷操作
給團(tuán)隊(duì)定制專屬模板(這招能裝X)
我們團(tuán)隊(duì)有自己的代碼規(guī)范,所以我研究了下怎么改模板,發(fā)現(xiàn)超簡單:
1. 先找到插件安裝位置,一般在~/.local/share/JetBrains/IntelliJIdea/plugins/(Windows用戶在C:\Users\用戶名\AppData\Roaming\JetBrains\插件名)
2. 里面有個(gè)templates文件夾,直接改里面的Velocity模板文件就行
3. 改完重啟IDEA,新生成的項(xiàng)目就完全符合團(tuán)隊(duì)規(guī)范了
依賴關(guān)系不用手動(dòng)配
這個(gè)功能我特別喜歡!你輸入模塊時(shí)按業(yè)務(wù)順序排好(比如api,service,pojo),插件會(huì)自動(dòng)幫你:
? api里加service依賴
? service里加pojo依賴
? 所有模塊默認(rèn)依賴common
完全不用自己寫dependency標(biāo)簽,省了我每次都要復(fù)制粘貼的功夫
遇到問題這樣解決
有同學(xué)問過我?guī)讉€(gè)常見問題,這里統(tǒng)一說下:
內(nèi)存溢出怎么辦? 剛用的時(shí)候我也遇到過,打開Help > Edit Custom VM Options,把-Xmx后面的數(shù)字改大,比如-Xmx2048m(2G內(nèi)存)就夠用了
插件找不到? 確保IDEA版本在2021.1以上,太老的版本不支持。實(shí)在不行就卸載重裝,記得重啟IDEA
想改Java版本? 直接改父pom.xml里的maven.compiler.source和maven.compiler.target,兩個(gè)值設(shè)成一樣的就行,比如<maven.compiler.source>17</maven.compiler.source>
想改源碼?看這里(進(jìn)階玩家)
要是你想給插件動(dòng)刀子——比如加上公司特有的代碼生成規(guī)則,或者想趁機(jī)學(xué)一波IDEA插件開發(fā),這項(xiàng)目源碼絕對(duì)適合你。我當(dāng)時(shí)也是摸著石頭過河,把踩過的坑給你們標(biāo)出來:
1.先把代碼搞下來
git clone git@gitee.com:tingyuabc/maven-aggregation-quickstart.git
cd maven-aggregation2.構(gòu)建其實(shí)很簡單
不用復(fù)雜配置,直接Maven打包就行:
mvn clean package等著控制臺(tái)輸出BUILD SUCCESS,然后去target/目錄找生成的jar包。我第一次打包的時(shí)候因?yàn)橐蕾嚊_突卡了半天,后來發(fā)現(xiàn)是IDEA版本對(duì)應(yīng)問題,建議用2022.1以上版本構(gòu)建
3. 本地安裝測試
在IDEA中選擇Install Plugin from Disk...,選擇剛生成的jar包進(jìn)行安裝測試。





























