日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

maven java archetype_使用Maven Archetype创建Java项目模板

發(fā)布時間:2025/3/15 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 maven java archetype_使用Maven Archetype创建Java项目模板 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.over view

簡而言之,Archetype是一個Maven項目模板工具包。原型被定義為一種原始的模式或模型,所有其他同類的東西都是從中產(chǎn)生的。當(dāng)我們試圖提供一個提供生成Maven項目的一致方法的系統(tǒng)時,這個名字就合適了。Archetype將幫助作者為用戶創(chuàng)建Maven項目模板,并為用戶提供生成這些項目模板的參數(shù)化版本的方法。

使用原型提供了一種很好的方法,可以與您的項目或組織所采用的最佳實踐一致的方式快速地使開發(fā)人員受益。您可能希望在組織內(nèi)部實現(xiàn)J2EE開發(fā)的標準化,因此您可能希望提供EJB,WAR或Web服務(wù)的原型。一旦創(chuàng)建了這些原型并將其部署在組織的存儲庫中,組織中的所有開發(fā)人員就可以使用它們。

2.do it

??:我們將使用springboot項目來演示如何生成一個maven archetype(原型),本文中(模板)(原型)交替使用,二者意思相同。

示例,我們有一個現(xiàn)成的項目,其結(jié)構(gòu)如下:

.

├── Dockerfile

├── README.md

├── last-demo.iml

├── mvnw

├── mvnw.cmd

├── pom.xml

├── src

├── main

│?? ├── java

│?? │?? └── com

│?? │?? └── demo

│?? │?? └── data

│?? │?? ├── Application.java

│?? │?? └── your_business_package

│?? │?? ├── client

│?? │?? │?? └── DemoClient.java

│?? │?? ├── constants

│?? │?? │?? └── YourBusinessConstants.java

│?? │?? ├── enumerate

│?? │?? │?? └── DemoStatus.java

│?? │?? ├── presistence

│?? │?? │?? ├── DemoRepository.java

│?? │?? │?? └── entity

│?? │?? │?? └── DemoDO.java

│?? │?? ├── service

│?? │?? │?? └── DemoService.java

│?? │?? └── web

│?? │?? ├── dto

│?? │?? │?? └── DemoDTO.java

│?? │?? └── rest

│?? │?? └── DemoController.java

│?? └── resources

│?? ├── application.yml

│?? └── logback-spring.xml

└── test

├── java

│?? └── com

│?? └── demo

│?? └── data

│?? └── ApplicationTests.java

└── resources

└── application.yml

我們將使用maven archetype來創(chuàng)建以該項目為基礎(chǔ)的模板。

2.1 生成模板文件夾

執(zhí)行以下maven命令:

mvn archetype:create-from-project

此時項目中會生成target/generated-sources/archetype文件夾,其中存放的就是我們的模板相關(guān)文件。

2.2 自定義模板

探索target/generated-sources/archetype我們可以得知:

generated-sources

└── archetype

├── pom.xml

├── src

│?? ├── main

│?? │?? └── resources

│?? │?? ├── META-INF

│?? │?? │?? └── maven

│?? │?? │?? └── archetype-metadata.xml ##??原型描述符,描述了我們原型的結(jié)構(gòu)

│?? │?? └── archetype-resources ##??經(jīng)過maven轉(zhuǎn)換后的項目文件包

│?? └── test

│?? └── resources

│?? └── projects

│?? └── basic

└── target

├── classes

│?? └── archetype-resources

├── your_project_name.jar

└── test-classes

└── projects

└── basic

我們隨機打開一個archetype-resources中的源文件,可以看到如下:

上圖中我們看到的${package}占位符,這個就是maven原型插件自動處理的結(jié)果,到時候我們根據(jù)原型生成項目的時候,這些占位符就會變成我們新生成項目的相關(guān)的值。類似,maven還提供了groupId,artifactId, version等關(guān)鍵字。如果我們項目中有其他地方也需要這種定制化,我們可以手動進行更改。

例如我們把項目配置文件改為如下(應(yīng)用名用占位符代替),目的是實現(xiàn)項目的名稱隨新建的項目變動。

接下來來分析archetype-metadata.xml,他是原型描述符號,我們可以指定那些文件進入原型里,那些文件需要排除,還能指定上面說的占位符需不需要被替換 等等。

如下為archetype-metadata.xml示例:

src/main/java

**/*.java

src/main/resources

**/*.xml

src/main/resources

**/*.yml

??:fileSet屬性標簽指定的那些文件需要納入原型中,我們把不需要的刪掉。

??:filtered屬性標簽表示是否替換文件中的占位符,若為true則會替換,否則不會,所以我們?nèi)绻胍嘉环詈髸惶鎿Q為項目相關(guān)的信息,還需要通過這個標簽指定。

??:packaged屬性標簽指定文件是否在項目的包里面,true或false。

2.3 生成模板(原型)

我們進入target/generated-sources/archetype目錄,執(zhí)行以下命令:

mvn install

此時模板將在我們本地生成。

2.4 使用模板(原型)生成新項目

我們使用以下命令:

mvn archetype:generate \

-DarchetypeCatalog=local \

-DgroupId=新建項目的groupId \

-DartifactId=新建項目的artifactId \

-DarchetypeGroupId=你的原型group \

-DarchetypeArtifactId=你的原型項目名字-archetype \

-DarchetypeVersion=你的原型版本 \

-DinteractiveMode=false

之后,我們會生成新項目。項目的結(jié)構(gòu)符合我們的原型結(jié)構(gòu)。查看我們手動指定的application.yml

可以看到我們的占位符被我們項目的相關(guān)信息給替換了。

2.5 將模板上傳至maven倉庫

我們進入target/generated-sources/archetype目錄,打開pom.xml

添加倉庫信息:

my-releases

你的倉庫地址

my-snapshots

你的倉庫地址

my-snapshots

對應(yīng)倉庫的username

對應(yīng)倉庫的password

my-releases

對應(yīng)倉庫的username

對應(yīng)倉庫的password

隨后指定如下命令:

mvn deploy

隨后,原型將被上傳至你的mavne倉庫。

3.summary

本文我們介紹的maven的原型及其特性帶來的好處,并且我們演示了如何生成一個原型,并且利用原型來創(chuàng)建一個新項目。

關(guān)注筆者公眾號,推送各類原創(chuàng)/優(yōu)質(zhì)技術(shù)文章 ??

總結(jié)

以上是生活随笔為你收集整理的maven java archetype_使用Maven Archetype创建Java项目模板的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。