使用 maven 建立專案模板
阿新 • • 發佈:2020-07-16
前言
微服務的概念越來越流行,隨著服務粒度越來越細,拆分的模組越來越明確,我們的工程專案也變得越來越多。
有時候一個專案搭建,需要整合資料庫、Spring 框架、訊息框架、分散式任務框架、快取等等,如果每次都新建空專案,重新配置,有點太麻煩,所以可以使用專案模板功能
maven archetype:create-from-project,製作符合需求的腳手架工程
配置 demo 工程
一般製作的話,使用公司內常用的中介軟體依賴,製作一份統一的模板,後續新建專案就能更加快速和模組分級合理化。
這裡記錄的是常規專案模板製作:
開啟 IDEA,新建一個工程(同樣可以使用 IDEA 工具中自帶的模板)
新建模組 module,制定合適的模組層級
├── test-controller
│ ├── pom.xml
│ └── src
├── test-core
│ ├── pom.xml
│ └── src
├── test-dao
│ ├── pom.xml
│ └── src
├── test-deploy
│ ├── pom.xml
│ └── src
....// 其它擴充套件模組
├── README.md
├── .gitignore
└── pom.xml
例如上面那樣結構,在 src 目錄下方 java、resource、webapp 等檔案
生成模板
mvn archetype:create-from-project
在專案目錄下,輸入該指令,等待執行完
可以在本地模式下測試模板是否符合預期,進入 target 目錄下的 archetype 目錄
cd ${Your Project File Directory}/target/generated-sources/archetype
例如上圖,確認專案結構無誤後,將模板安裝到本地
mvn install
接著就能在 .m2/repository 目錄下看到 archetype-catalog.xml,在裡面多了剛才生成的模板
<archetype>
<groupId>org.example</groupId>
<artifactId>test-archetype</artifactId>
<version>1.0-SNAPSHOT</version>
<description>test-archetype</description>
</archetype>
生成專案
mvn archetype:generate \
-DarchetypeGroupId=org.example \
-DarchetypeArtifactId=test-archetype \
-DarchetypeVersion=1.0-SNAPSHOT \
-DinteractiveMode=false \
-DarchetypeCatalog=local \
-Dversion=1.0.0-SNAPSHOT \
-DgroupId=cn.sevenyuan \
-DartifactId=sevenyuan
-D
後面的引數是要重點說明一下的:
archetypeGroupId
:模板組織 IDarchetypeArtifactId
:模板 artifact IDarchetypeVersion
:模板版本號interactiveMode
:是否啟用互動模式archetypeCatalog
:模板目錄位置,分為 remote 和 localversion
:自己應用的版本號groupId
:自己應用的組織 IDartifactId
:自己應用的 artifact ID
例如我使用了 cn.sevenyuan 這個組織名,生成的目錄結構如下
上傳模板到倉庫
需要在 target/generated-sources/archetype
目錄下的 pom
檔案中加入倉庫地址,例如如下示範
<!--執行 mvn deploy 時上傳構件到本地倉庫 -->
<distributionManagement>
<repository>
<id>xxx-releases</id>
<name>Nexus Release Repository</name>
<url>http://xxx.com/nexus/content/repositories/xxx-release/</url>
</repository>
<snapshotRepository>
<id>xxx-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://xxx.com/nexus/content/repositories/xxx-test/</url>
</snapshotRepository>
</distributionManagement>
接著在 archetype 目錄下,執行 deploy 命令
mvn deploy
只要別人在 .m2 配置了該倉庫地址,就可以一起使用這個專案模板