Maven Archetype 原型

從本節開始,我們來介紹一些關于 Maven 的其他技巧,屬于錦上添花類型的技巧。這些技巧并不會出現在平時的使用過程中,但是,如果用到的時候,你絕對會有種相見恨晚的感覺。

我們第一個引出來的是 Maven 的 Archetype 原型。我們在最開始的章節中也有所提及,今天我們就來重點講一下 Archetype 原型在什么情況下會使用到,以及如何使用。

在我們平時的工作中,可能會遇到這種情況:當我們需要創建新工程的時候,可能需要從之前的工程當中移植一些功能過來,或者新工程與之前的工程有著類似的目錄結構,這個時候,我們如果直接使用 copy 的方式,就需要做很大的變動,并不是很方便。這個時候,Archetype 原型就能夠排上用場了。

1. What is Maven Archetype?

我們從 Maven 的官網可以看到這樣一句話:

In short, Archetype is a Maven project templating toolkit. An archetype is defined as an original pattern or model from which all other things of the same kind are made. The name fits as we are trying to provide a system that provides a consistent means of generating Maven projects. Archetype will help authors create Maven project templates for users, and provides users with the means to generate parameterized versions of those project templates.

翻譯過來呢是這樣子的:簡而言之, Archetype 是 Maven 項目模板工具箱。 原型定義為原始的圖案或模型,可制成所有其他同類的東西。 這個名稱正好適合我們試圖提供一個提供生成 Maven 項目的一致方法的系統。 原型將幫助項目創建者為不同用戶創建 Maven 項目模板,并為用戶提供生成這些項目模板的參數化版本的方法。

通過上述描述,我們可以把 Archetype 簡單的理解為我們做蛋糕時候的模子,有了這個模子,我們只需要往里面有選擇性的添加原料,就可以做出各種各樣美味的蛋糕了

2. How to use Maven Archetype?

上面呢,我們簡單介紹了一下 Archetype,也大概了解到它會是一個非常方便的東西,但是我們要怎么制作一個模子呢,制作好了之后,又要怎么使用呢?

2.1 如何制作 Archetype

首先,我們心中要有一個模子的雛形,就像我們現在想要做一個心形的蛋糕,那么我們就要知道心形是什么樣子的,才能做出一個心形的模子。

在這里呢,我們就需要一個可以作為模板的工程。例如下圖所示:

非常標準的一個小項目。

接下來呢,我們就使用這個項目作為例子,來演示如何使用 Archetype。

第一步,我們進入這個項目的根目錄,并執行 如下命令:

mvn -s "D:\SOFT\apache-maven-3.6.3\conf\settings.xml" archetype:create-from-project -DpackageName=com.mic.demo
  • s: 指定 maven 的 setting 文件;
  • DpackageName: 指定項目默認包路徑。

看到如下結果的時候,就說明我們的模板制定成功了。

緊接著,我們可以來到 demo 項目的 target/generated-sources 目錄下,看到生成的 archetype 項目,如下圖:

第二步,我們可以把 archetype 目錄復制出來,單獨作為一個項目來看。(單獨復制出來不是必須的)

導入到 idea 里面后,我們可以看到 Archetype 的項目結構如下:

我們現在要做的就是將這個 Archetype 項目構建到我們的 Maven 本地倉庫中。

在 Archetype 項目的的根目錄下執行如下命令:

mvn install

執行成功后,我們可以在本地倉庫中找到對應的 archetype-catalog.xml 文件:

以及生成的對應 Archetype 的 jar 包:

至此,我們的 Archetype 模板就制作完成了。

2.2 使用已經做好的 Archetype 模型

其實使用起來非常簡單,兩種方式:

  • 結合 idea 來使用

我們打開 idea 來創建一個 Maven 項目,并選擇 add Archetype,將剛剛我們生成的模板坐標添加進去。

選擇剛剛添加的模板,下一步,并填寫相應的信息,就能生成新的項目了。

跟我們的模板工程一模一樣
  • 我們也可以直接使用命令行來進行創建

進入存放代碼的目錄執行如下命令:

mvn archetype:generate  -DarchetypeGroupId=com.mic /
    					-DarchetypeArtifactId=demo-archetype  /   
    					-DarchetypeVersion=0.0.1-SNAPSHOT  /   
    					-DgroupId=com.mic  /   
    					-DartifactId=archetype-test     /
    					-Dversion=0.1     /
    					-Dpackage=com.mic.ace     /
    					-DinteractiveMode=false

其中 DarchetypeGroupId,DarchetypeArtifactId,DarchetypeVersion 用來指定 Archetype 的坐標信息,DgroupId,DartifactId,Dversion 用來指定新創建項目的坐標信息。

3. 注意事項

  • 在創建 Archetype 模板的時候,其實只需要執行:mvn archetype:create-from-project,但是有時候針對 Maven 不同的配置,有可能會去 .m2 目錄下去找 settings.xml,可能會造成創建失敗;
  • 另外不指定package的話,可能會造成包路徑重復;
  • 我們可以制定一個項目基線用來創建項目模板,而不是通過已有項目來創建模板,這樣能夠最大程度上減少新創建項目中存在不需要的功能;
  • 我們可以直接在 archetype 目錄下執行mvn install 用來將原型構建到本地倉庫中去。

4. 小結

在本節中,我們主要講了 Maven 的 Archetype 原型,如何創建自己的 Archetype 以及如何使用 Archetype。后面再有需要創建新項目的時候,可以拿來試一下,事半功倍。

主站蜘蛛池模板: 亚洲电影国产一区| 成人无码精品一区二区三区| 午夜天堂一区人妻| 精品深夜AV无码一区二区老年| 无码日韩人妻AV一区二区三区| 国产精品视频一区二区三区经| 丰满人妻一区二区三区视频53| 精品无码成人片一区二区98| 国产av成人一区二区三区| 国产伦精品一区二区| 性色av无码免费一区二区三区| 国产成人精品视频一区二区不卡| 一区二区在线视频免费观看| 国产在线观看一区二区三区四区| 亚洲一区二区三区高清视频| 日本不卡一区二区视频a| 男人的天堂精品国产一区| 亚洲Av永久无码精品一区二区| 无码精品一区二区三区在线| 在线精品亚洲一区二区小说| 国产av熟女一区二区三区| 本免费AV无码专区一区| 无码精品人妻一区二区三区影院 | 亚洲爽爽一区二区三区| 在线观看中文字幕一区| 中文无码一区二区不卡αv | 亚洲一区二区三区高清不卡 | 日韩a无吗一区二区三区| 国产精品视频一区二区猎奇| 无码少妇一区二区| 亚洲国产一区在线观看| 国产精品合集一区二区三区| 成人区精品一区二区不卡亚洲| 无码人妻精品一区二区三区蜜桃| 中文字幕一区在线观看视频| 黑巨人与欧美精品一区| 福利一区二区视频| 亚洲熟女少妇一区二区| 日韩精品无码一区二区三区不卡| 亚洲国产一区在线观看| 国产日韩精品一区二区三区|