1、為什么要生成自己的maven腳手架(maven骨架)?
問題背景:
1.1 目前公司中沒有統一使用模板工程,都是每個業務線根據自己的之前項目去創建新項目。沒有統一的工程結構規范,
1.2 重新搭建也很浪費時間,而且會出錯。(作為一個准時下班的程序員,必須要高效率,高質量地完成任務)
所以我們必須使用統一的模板工程,這是這篇文章的目標。
2、如何搭建我們的maven腳手架呢?(請認真,一步一步跟着操作)
2.1 選定自己的一個工程,我們利用這個工程生成模板工程
2.2 加入生成骨架的插件
2.3 使用maven命令生成骨架(注意:這里有個坑。如果你使用IDEA上的maven窗口,需要注意,使用的maven是自己下載的maven還是IDEA的maven)
2.3.1 使用IDEA右側的MAVEN工具欄目(推薦,既然有工具,為啥不用呢?)
2.3.2 手動用maven命令(注意,這里有坑,使用這種方式,本質是用了配置在系統全局變量里面的maven_home對應地址的maven)
2.4 調整骨架里面的內容(主要花時間在這里調整代碼的細節。)
考慮的點:
1、既然是通用性。那么數據庫的賬號和密碼,最好分配只有操作某一張演示表的權限。
2、spring boot 啟動類,到底放在什么文件夾下?這個要根據公司的約定吧。本質是,spring boot啟動類,在啟動的時候,只會掃描當前包下的所有的包。(反面例子:依賴的一個公司的依賴包,某個client,是放在com.common下。如果啟動類放在com.xiaoming下,那么啟動類就掃描不到這個client類)
2.4.1 動態文件名需要__A-api__(兩個雙下划線)
2.4.2 文件內的內容需要動態替換,用到${archetype}
2.4.3 用戶輸入的groupId,會替換${package}里面的package。例如:groupId為com.ving,則 import com.ving.***
2.4.4 用戶輸入的archetypeId,會替換${archetype}和${rootarchetype}
2.4.5 用戶輸入的version,會替換${version}
2.4.6 archetype-metadata.xml(這個文件很重要)
3.1 如何將骨架安裝到本地倉庫?
經過多次的調整骨架之后,需要安裝到本地倉庫(如果確定骨架沒有變動之后,可以推送送到公司的私服maven倉庫中)
使用maven的Install命令即可
檢查本地倉庫是否安裝成功
3.2 如何將骨架推送到公司私服倉庫?
在骨架的父pom文件中,添加maven私服地址(這個是maven的知識,如果有不知道同學,可以自行了解)
執行deploy命令,完成推送到私有庫(一般情況下,將骨架工程,打成壓縮包,給公司的運維同事,讓他幫忙執行deploy命令,將jar包推送到私有倉庫)
4 如何使用我們剛剛定義的maven骨架,創建新的工程?
4.1 打開IDEA
4.2 點擊File--->New--->Project--->Maven-→勾選Create from archetype --→點擊Add Archetype
4.3 輸入GroupId,ArtifactId,Version
<groupId>com.XXX.framework</groupId>
<artifactId>ky-project-sample-archetype</artifactId>
<version>1.0.0-SNAPSHOT</version>
4.4 選擇模板工程
4.5 之后都是下一步,下一步完成操作。
總結:上面是我在公司生成的maven骨架的全部工程。最花時間的步驟是調整maven骨架的代碼。總體實現難度不大。