1. 程式人生 > 實用技巧 >使用 maven 建立專案模板

使用 maven 建立專案模板

前言

微服務的概念越來越流行,隨著服務粒度越來越細,拆分的模組越來越明確,我們的工程專案也變得越來越多。

有時候一個專案搭建,需要整合資料庫、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:模板組織 ID
  • archetypeArtifactId:模板 artifact ID
  • archetypeVersion:模板版本號
  • interactiveMode:是否啟用互動模式
  • archetypeCatalog:模板目錄位置,分為 remote 和 local
  • version:自己應用的版本號
  • groupId:自己應用的組織 ID
  • artifactId:自己應用的 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 配置了該倉庫地址,就可以一起使用這個專案模板


參看連結

1、Maven自定義archetype生成專案骨架