微服務時代之自定義archetype(模板/骨架/腳手架)


1. 場景描述

(1)隨着微服務越來越常見,一個大的項目會被拆分成多個小的微服務,jar包以及jar之間的版本沖突問題,變得越來越常見,如何保持整體微服務群jar及版本統一,也變成更加重要了,maven的自定義archetype(模板/骨架/腳手架)很好的解決了這個問題,在新建微服務項目的時候,使用統一的archetype創建項目,可以提高開發效率與避免不必要的項目jar包沖突。

(2)自定義archetype(模板/骨架/腳手架)主要有兩個作用,一是針對本人,后續開發使用已經驗證過的項目配置,可以提高開發效率與避免不必要的問題;二是針對項目成員或公司同事,大家使用統一的archetype,可以有效避免jar及版本沖突。

2. 解決方案

2.1 pom文件新增插件信息

首先在將作為archetype的項目的pom文件中添加插件配置信息:

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-archetype-plugin</artifactId>
                <version>3.0.0</version>
            </plugin>

如下圖:

2.2 生成自定義archetype項目信息

點擊mvn命令按鈕,執行下面命令

mvn archetype:create-from-project

如下圖:

2.3 查看及編譯archetype項目信息

執行完成后,console中會有提示,項目文件生成在target下面。

文件可以直接修改,這時候可以修改pom文件或者java類,比如在pom文件中新增maven倉庫信息。

<distributionManagement>
<repository>
<id>releases</id>
<url>http://192.168.0.11:8888/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://192.168.0.11:8888/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>

如下圖:

2.4 打包(jar/war)

(1)路徑是剛才生成的archetype路徑:

E:\tool\workspace\spcrud\target\generated-sources\archetype

(2)執行maven命令是:

mvn clean install

(3)效果圖

說明: jar包會打包到本地倉庫中

[INFO] --- maven-install-plugin:3.0.0-M1:install (default-install) @ spcrud-archetype ---
[INFO] Installing E:\tool\workspace\spcrud\target\generated-sources\archetype\target\spcrud-archetype-0.0.1-SNAPSHOT.jar to E:\m2\repository\com\laowang\spcrud-archetype\0.0.1-SNAPSHOT\spcrud-archetype-0.0.1-SNAPSHOT.jar
[INFO] Installing E:\tool\workspace\spcrud\target\generated-sources\archetype\pom.xml to E:\m2\repository\com\laowang\spcrud-archetype\0.0.1-SNAPSHOT\spcrud-archetype-0.0.1-SNAPSHOT.pom

2.5 使用archetype創建工程

說明:

(1)新建工程,選擇從archetype中創建工程,錄入gav定位jar包,這個gav可以在本地maven倉庫自定義archetype的xml中看到(剛才打包的時候也有)。

(2)這個是從本地倉庫獲取的jar包創建的,團隊成員或者公司人員使用的話,需要把對應的jar包上傳到maven私服庫中即可,其他流程不變。


I’m 「軟件老王」,如果覺得還可以的話,關注下唄,后續更新秒知!歡迎討論區、同名公眾號留言交流!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM