MAVEN:自定義模板Archetype的創建

目錄

一、簡介

二、具體步驟

三、 vscode通過模板創建項目

?四、通過IDEA創建


一、簡介

? ? ? ? 有時候MAVEN自帶的模板庫并不能滿足我們創建項目的需求,為了能夠快速創建項目,免去每次復雜的配置,所以我們需要自定義模板庫,本次操作基于vscode的環境。

? ? ? ? 在MAVEN的倉庫里,有個archetype-catalog.xml文件里面記載了模板的坐標信息,可以方便IDEA通過坐標添加模板,而vscode可以自動掃描得到自定義的模板庫,無需手動添加。

二、具體步驟

1、自定義一個項目,用來當作模板,我創建的是一個springmvc的模板

?2、在pom.xml文件中添加代碼。

????????以下代碼指定了一個插件maven-archetype-plugin和一個擴展maven-archetype-plugin.

? ? ? ? maven-archetype-plugin插件:通過該插件,可以創建包含特定目錄結構、配置文件和基本代碼框架的項目模板。

????????archetype-packaging?擴展:可以定義項目原型的結構和組織方式,涉及archetype-metadata.xml的生成。

        <plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-archetype-plugin</artifactId><version>3.2.1</version></plugin></plugins><extensions><extension><groupId>org.apache.maven.archetype</groupId><artifactId>archetype-packaging</artifactId><version>3.0.1</version></extension></extensions>

最終的pom.xml代碼:

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.sunlan</groupId><artifactId>springmvc</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><name>springmvc Maven Webapp</name><!-- FIXME change it to the project's website --><url>http://www.sunlan.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.30</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.30</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.0.1</version><scope>provided</scope></dependency><!-- 添加jstl依賴,使其支持<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>jstl語法 --><!-- jstl標簽庫相關 --><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.taglibs/taglibs-standard-impl --><dependency><groupId>org.apache.taglibs</groupId><artifactId>taglibs-standard-jstlel</artifactId><version>1.2.5</version></dependency></dependencies><build><finalName>springmvc</finalName><pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --><plugins><plugin><artifactId>maven-clean-plugin</artifactId><version>3.1.0</version></plugin><!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --><plugin><artifactId>maven-resources-plugin</artifactId><version>3.0.2</version></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.8.0</version></plugin><plugin><artifactId>maven-surefire-plugin</artifactId><version>2.22.1</version></plugin><plugin><artifactId>maven-war-plugin</artifactId><version>3.2.2</version></plugin><plugin><artifactId>maven-install-plugin</artifactId><version>2.5.2</version></plugin><plugin><artifactId>maven-deploy-plugin</artifactId><version>2.8.2</version></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-archetype-plugin</artifactId><version>3.2.1</version></plugin></plugins></pluginManagement><extensions><extension><groupId>org.apache.maven.archetype</groupId><artifactId>archetype-packaging</artifactId><version>3.0.1</version></extension></extensions></build>
</project>

?3、創建archetype骨架

在項目根目錄下運行以下代碼:

mvn clean archetype:create-from-project

運行完成后項目會在target文件夾下生成以下目錄并將默認的值替換成變量?:

以下是archetype骨架自帶的默認變量對應的默認值

其中在archetype-metadata.xml文件中可以用來定義模板的結構。

其中在archetype-resources文件中可以查看具體的模板結構和代碼 。

<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptor xsi:schemaLocation="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0 http://maven.apache.org/xsd/archetype-descriptor-1.1.0.xsd" name="springmvc"xmlns="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><fileSets><fileSet filtered="false" packaged="false" encoding="UTF-8"><directory>src/main/java</directory><includes><include>**/*.java</include></includes></fileSet><fileSet filtered="false" packaged="false" encoding="UTF-8"><directory>src/main/resources/lib</directory><includes><include>**/*.jar</include></includes></fileSet><fileSet filtered="false" packaged="false" encoding="UTF-8"><directory>src/main/webapp</directory><includes><include>**/*.jsp</include><include>**/*.xml</include></includes></fileSet></fileSets>
</archetype-descriptor>

fileSet代表文件集,用來定義模板庫包含的文件和文件夾

? ? ? ? 屬性filtered=true,可以替換引用的變量。如果將filtered設置為false,則不會替換引用的變量,而是保持引用的原樣。

? ? ? ? 屬性packaged=false則不會自動生成包類型的文件夾,反之則會自動生成。

? ? ? ? 屬性include用來表示要模板包含的文件,其中**表示匹配任意子目錄,*表示

?4、安裝archetype到本地

?進入target/generated-sources/archetype目錄下,執行指令:

mvn clean install

運行成功后可以在info指示的目錄下找到骨架的jar包。

?5、在本地倉庫生成骨架坐標信息

執行以下命令,在archetype-catalog.xml內生成坐標信息:?

mvn archetype:crawl

三、 vscode通過模板創建項目

?第一步:

??第二步:

?然后根據模板創建即可。

?四、通過IDEA創建

然后就跟創建webapps的模板庫一樣了。?

五、參考資料

maven-archetype自定義模板創建,并在本地和遠程倉庫生成模板項目_maven-archetype-plugin 版本-CSDN博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/24236.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/24236.shtml
英文地址,請注明出處:http://en.pswp.cn/web/24236.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux 性能優化基礎

文章目錄 常見指標分類&#xff08;USE法&#xff09;常見性能工具CPU性能工具內存性能工具文件系統和磁盤I/O性能工具網絡性能工具 根據指標找工具CPU性能內存性能文件系統和磁盤I/O網絡性能 根據工具找指標CPU性能內存性能文件系統和磁盤I/O網絡性能 CPU性能分析一般步驟內存…

【C++題解】1254. 求車速

問題&#xff1a;1254. 求車速 類型&#xff1a;簡單循環 題目描述&#xff1a; 一輛以固定速度行駛的汽車&#xff0c;司機在上午 10 點看到里程表上的讀數是一個對稱數(即這個數從左向右讀和從右向左讀是完全一樣的)&#xff0c;為95859 。 兩小時后里程表上 出現了一個新的…

不明確的unicode字符

不明確的unicode字符 起因&#xff1a;一個Demo源碼&#xff0c;也不知道是用什么編輯器編的&#xff0c;中文注釋非常全面。就打算原來的基礎上改改就用&#xff0c;特別是里面大量接口、類的定義&#xff0c;真沒必要重寫。但是在VS Code里面打開&#xff0c;出現“本文檔包含…

k-means聚類模型的優缺點

一、k-means聚類模型的優點 1. 簡單高效&#xff1a;k-means算法思想簡單直觀&#xff0c;易于實現。它通過迭代計算樣本點與聚類中心之間的距離&#xff0c;并不斷調整聚類中心的位置&#xff0c;直至滿足終止條件。由于其計算過程相對直接&#xff0c;所以具有較高的執行效率…

控制臺輸入javac命令輸出的結果中的中文亂碼解決方式

默認字符編碼UTF-8無法解析中文。設置環境變量中 “JAVA_TOOL_OPTIONS” 的值為"UTF-8" 即可。 具體配置步驟&#xff1a; 桌面右鍵"我的電腦" --> 屬性 高級系統設置 環境變量 用戶變量中添加 JAVA_TOOL_OPTIONS 然后確定&#xff0c;保存即可。

阿里云一鍵登錄號碼認證服務

阿里云文檔&#xff1a;號碼認證SDK_號碼認證服務(PNVS)-阿里云幫助中心 對于后端大概流程 前端App會傳一個token過來 后端通過下面方法解析 如果解析可以獲得號碼,說明號碼認證成功,如果無法正確解析則認證失敗 /*** actoken來換取電話號碼* param token app端用戶授權actok…

WDF驅動開發-PNP和電源管理(二)

下面是一種比較典型的 PnP 和電源管理方案&#xff0c;WDF框架在這些情況下調用驅動程序的事件回調函數&#xff1a; 用戶插入設備用戶拔出設備設備進入低功耗狀態設備回到工作狀態PnP 管理器重新分發系統資源 這些幾乎是所有的和PNP、電源管理相關的場景了&#xff0c;它們分…

達夢8 網絡中斷對系統的影響

測試環境&#xff1a;三節點實時主從 版本&#xff1a;--03134283938-20221019-172201-20018 測試1 系統沒有啟動確認監視器 關閉節點3網卡 登錄節點1檢查主庫狀態 顯示向節點2發送歸檔成功&#xff0c;但無法收到節點3的消息&#xff0c;節點1掛起 日志報錯如下&#xf…

易于上手的requests

Python中的requests庫主要用于發送HTTP請求并獲取響應結果。在現代網絡編程中&#xff0c;HTTP請求是構建客戶端與服務器之間通信的基礎。Python作為一種高級編程語言&#xff0c;其豐富的庫支持使得它在網絡數據處理領域尤為突出。其中&#xff0c;requests庫以其簡潔、易用的…

力扣560. 和為 K 的子數組

Problem: 560. 和為 K 的子數組 文章目錄 題目描述思路復雜度Code 題目描述 思路 1.初始化一個哈希表preSum&#xff0c;用于記錄前綴和及其出現次數,ans記錄和為k的子數組數量、sum_i記錄當前前綴和&#xff1b; 2.將前綴和為 0 的情況存入哈希表&#xff0c;表示前綴和為 0 出…

【Python】認識 Python

一、計算機基礎概念 1、什么是計算機 很多老一輩的人&#xff0c;管下面這個叫做計算機。然而&#xff0c;它只是 “計算器”&#xff0c;和計算機是有很大區別的。 現在我們所說的計算機&#xff0c;不光能進行算術運算&#xff0c;還能進行邏輯判斷、數據存儲、網絡通信等…

遇到no module named ‘pyLDAvis.sklearn‘的解決辦法

在NLP學習中&#xff0c;常常用到LDA主題模型對文本進行分類&#xff0c;可視化經常用到的代碼有 import pyLDAvis import pyLDAvis.sklearnpanel pyLDAvis.sklearn.prepare(lda, tf_idf, tf_idf_vectorizer) pyLDAvis.save_html(panel, lda_visualization.html) pyLDAvis.di…

HTML靜態網頁成品作業(HTML+CSS)—— 節日母親節介紹網頁(5個頁面)

&#x1f389;不定期分享源碼&#xff0c;關注不丟失哦 文章目錄 一、作品介紹二、作品演示三、代碼目錄四、網站代碼HTML部分代碼 五、源碼獲取 一、作品介紹 &#x1f3f7;?本套采用HTMLCSS&#xff0c;未使用Javacsript代碼&#xff0c;共有5個頁面。 二、作品演示 三、代…

騎砍2霸主MOD開發(12)-游戲實例GameEntity

一.GameEntity游戲實例 <1.通用GameEntity,梯子,椅子,攻城云梯,戰車等定義為GameEntity,一個GameEntity由若干GameEntityComponets組成,例如攻城云梯的輪子是一個獨立Component,支架是一個獨立Component, GameEntity GameEntityComponent1 GameEntityComponent2 GameEntit…

前端開發之WebSocket通信

WebSocket WebSocket是一種在單個TCP連接上進行全雙工通信&#xff08;雙向同時通信&#xff09;的協議&#xff0c;它允許服務器和客戶端之間自由地交換數據&#xff0c;無需反復建立連接。其特點包括&#xff1a; 雙向通信&#xff1a;實時性強&#xff0c;支持服務器向客戶…

移動端前端開發遇到過的Andorid和IOS的差異記錄

移動端前端開發遇到過的安卓和蘋果的差異記錄 1. 引入外部資源&#xff0c;最好用https2. IOS時間戳獲取NaN問題3. 金額三位分節顯示方式4. .webp圖片支持問題 1. 引入外部資源&#xff0c;最好用https ios處于安全性的考慮&#xff0c;不大支持http引入外部資源&#xff0c;所…

【kubernetes】探索k8s集群的配置資源(secret和configma)

目錄 一、Secret 1.1Secret 有四種類型 1.2Pod 有 3 種方式來使用 secret 1.3應用場景&#xff1a;憑據 1.4創建 Secret 1.4.1用kubectl create secret命令創建Secret 1.4.2內容用 base64 編碼&#xff0c;創建Secret 1.4.2.1Base64編碼 1.4.2.2創建YAML文件 1.4.2.3…

《計算機網絡》

計算題【33】 題目:假設一個有噪聲信道的帶寬為3KHz,信噪比為30dB,則該信道的最大數據傳輸速率是多少? C = W log2(1+S/N)(bit/s)=3000Hz* log2(1+30)= 29.9kbps 題目:一個網絡中,設定的IP地址范圍是:172.88.32.1至172.88.32.254,試確定其合適的子網掩碼。 分析第…

「前端+鴻蒙」鴻蒙應用開發預覽模擬器運行

在鴻蒙應用開發中&#xff0c;預覽和模擬器運行是開發流程中的重要環節&#xff0c;它們允許開發者在不使用實體設備的情況下測試應用的界面和功能。以下是如何使用華為DevEco Studio進行預覽和在模擬器上運行鴻蒙應用的詳細步驟&#xff0c;以及相應的示例代碼。 快速體驗-預覽…

277 基于MATLAB GUI火災檢測系統

基于MATLAB GUI火災檢測系統&#xff0c;可以實現圖片和視頻的火苗檢測。火焰識別的三個特征&#xff1a;1個顏色特征&#xff0c;2個幾何特征顏色特征&#xff1a;HSV顏色空間下&#xff0c;對三個通道值進行閾值濾波&#xff0c;幾何特征1&#xff1a;長寬比&#xff0c;幾何…