maven-archetype多模塊骨架創建以及使用

一、背景

       最近部門的項目進行多模塊拆分,一個maven模塊裏包含多個maven子模塊,爲了方便創建多模塊,部門年輕的架構師(我很佩服他)用maven-archetype來創建多模塊骨架,然後創建多模塊就方便多了。

二、創建多模塊骨架

1、首先創建父模塊

    <groupId>com.cn.dl</groupId>
    <artifactId>biz-base-archetype</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

2、然後創建兩個子模塊,這個根據自己的項目結構來創建

<modules>
     <module>biz-base-archetype-service</module>
     <module>biz-base-archetype-impl</module>
</modules>

3、最後創建好的模塊結構

4、接下來根據創建的模版來生成骨架

進入當前項目的根目錄,例如:cd biz-base-archetype/目錄下,然後執行命了:maven archetype:create-from-project

初次需要下載很多jar包,時間稍微有點長,成功之後,可以看到下面內容

子模塊的命名是父模塊的命名 + 子模塊的功能名,例如這裏父模塊是biz-base-archetype,子模塊中,一個提供接口,一個提供具體實現,那麼子模塊最終的命名:biz-base-archetype-servicebiz-base-archetype-impl,模版裏面是通過__rootArtifactId__佔位符來替換自己創建的父模塊的artifactId,這樣最終生成的模塊就是嚴格按照父模塊的artifactId來命名。

5、生成骨架成功之後,發佈到本地倉庫,執行命令mvn install

進入 target/generated-sources/archetype/目錄下,然後執行mvn install

最後在本地倉庫就可以找到對應的模版

三、使用模版

1、添加模塊

這樣模版就添加成功了

2、選中biz-base-archetype-archetype,創建模塊biz-task-api

一路next,不需要改動!!!

到這裏使用自己創建的骨架模塊創建多模塊就OK了,是不是很爽!

四、可能出現的問題:

1、發現創建的多模塊沒有src/main/java目錄,模塊創建成功之後還要去創建目錄,這樣多麻煩,網上說在模塊創建時,添加參數archetypeCatalog=internal 、archetype=Internal,貌似都不起作用,最後發現是archetype-metadata.xml裏面沒有申明去創建src/maven/java和src/main/resources目錄!所以,在骨架模塊裏面創建Test.java、test.properties兩個空文件

然後重新按照前面的步驟執行maven archetype:create-from-project、然後刪除本地倉庫中的骨架模版,再執行 mvn install

接下來再重新創建模塊,就包含src/maven/java和src/main/resources這兩個目錄了!

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章