IDEA自定義Maven archetype

2022/03/14 驗證通過

文章更新歷史

2022/03/03 初稿。

原文地址://www.terwergreen.com/post/jdbc-de-wen-ti-fen-xi.html

為什麼要自定義archetype

在創建Maven的項目時我們發現了一個很不方便的問題,就是每次創建Maven的工程的時候,都需要選擇一個骨架,但是每個骨架都需要刪除一部分東西才行,在平時開發中,如果是分散式項目,有可能會頻繁創建子項目,每次都要刪除不要的文件然後拷貝我們要的文件,例如彈簧配置,web.xml中配置等。這樣做不僅會浪費大量時間,拷貝和刪除文件也容易導致錯誤的發生,比如漏拷某文件。

Archetype maven 項目的組成

一個典型的Archetype Maven項目主要包括如下幾個部分:

  • pom.xml:Archetype自身的POM。
  • src/main/resources/archetype-resources/pom.xml:基於該Archetype生成項目的POM原型。
  • src/main/resources/META-INF/maven/archetype-metadata.xml:Archetype的描述符文件。
  • src/main/resources/archetype-resources/**:其他需要包含在Archetype中的內容。

創建自己的骨架結構

要創建Maven的模板,首先你要創建一個Maven的項目,然後再以這個項目作為模板。

創建maven工程

首先創建一個Maven的工程,名字叫maven-template-java-simple

選擇骨架

骨架創建

在maven-template-java-simple根目錄執行

mvn archetype:create-from-project

報錯解決

mvn archetype:create-from-project報錯The specified user settings file does not exist

//www.cnblogs.com/chmod/p/15489910.html

執行完畢之後,會出現一個編譯之後新的maven工程(target文件夾),如下圖:

骨架安裝

安裝對應骨架項目

先進入骨架項目的pom文件目錄:

cd target/generated-sources/archetype

執行安裝:

mvn clean install

我們的骨架項目坐標如下:

<groupId>com.terwergreen</groupId>
<artifactId>maven-template-java-simple-archetype</artifactId>
<version>1.0.0</version>
<packaging>maven-archetype</packaging>

至此,骨架項目安裝成功。

使用自己創建的自定義骨架

創建新的Maven工程,選擇自定義骨架

添加骨架

創建新的maven工程,選擇Add Archetype,填寫剛才添加的骨架工程坐標,點擊OK,這是會生成一個新的骨架選項。

groupId com.terwergreen
artifactId maven-template-java-simple-archetype
version 1.0.0

選中新創建的骨架,點擊下一步創建新的Maven的項目如下,這是新建的測試項目:




以後再創建類似的Maven的項目時,就可以快速新建的Maven項目而不用改來改去了。是不是很方便呢?

PS:刪除自定義archetype

cd /Users/terwer/Library/Caches/JetBrains/IntelliJIdea2021.3/Maven/Indices

然後編輯 UserArchetypes.xml 文件即可。注意:修改文件之後需要重啟IDEA。