Maven Archetype 自定義項目模板:高效開發的最佳實踐

文章目錄

  • 前言
  • 一、Maven Archetype
  • 二、創建自定義 Maven Archetype
  • 三、定制 Archetype 模板
  • 四、手動創建 Archetype 模板項目
  • 五、FAQ
    • 5.1 如何刪除自定義的模板
    • 5.2 是否可以在模板中使用空文件夾
  • 六、小結
  • 推薦閱讀

前言

在軟件開發中,標準化和快速初始化項目結構能夠顯著提升開發效率。Maven Archetype 插件提供了創建自定義項目骨架模板的功能,使我們能夠輕松生成預定義結構的項目。本文將詳細介紹如何創建一個自定義的項目模板,從而提高日常的開發效率。

一、Maven Archetype

Maven Archetype 是一種用于生成項目結構的模板,可以幫助開發者快速創建一個預定義的項目骨架。Maven 自帶了一些常見的 Archetype 模板,如 maven-archetype-quickstart、maven-archetype-webapp 等,但在實際開發中,我們可能需要根據團隊的標準或個人喜好創建自定義的 Archetype。

二、創建自定義 Maven Archetype

  1. 在命令行使用 mvn archetype:generate 命令創建一個基礎項目

  2. 將這個基礎項目改造成我們需要的模板形式

    image.png

  3. 使用 mvn archetype:create-from-project 命令將這個基礎項目轉換成模板。這個命令將在 target/generated-sources 目錄下生成一個名為 archetype 的項目。

    image.png

  4. 使用 idea 打開 target/generated-sources/archetype 項目,執行 mvn clean install 命令將項目安裝到本地

    image.png

  5. 在命令行使用 mvn archetype:generate 命令,選擇我們自定義的模板生成項目

    image.png

    填寫項目的基本信息

    image.png

    如果大家不熟悉使用命令行,可以直接在 idea 中使用模板創建項目

    image.png

    不過這種方式不能選擇模板,需要手動填寫模板信息比較麻煩,大家可根據自身情況選擇方案。

  6. 項目生成了,但是生成的項目存在一些額外的東西,我們先手動處理一下

    image.png

  7. 打開項目,查看項目的工程結構

    image.png

三、定制 Archetype 模板

剛才的模板中生成了額外的 .idea 目錄,我們并不需要在模板中創建這個目錄。此時,我們需要定制這個模板。我們可以打開之前生成的 archetype 項目。

archetype 項目中刪掉我們不需要的模板和配置。

image.png

對該項目重新執行 mvn install 命令安裝模板,之后使用模板創建的項目就不會有這個多余的目錄了。

四、手動創建 Archetype 模板項目

我們還可以手動搭建一個 Archetype 模板項目。

  1. 新建一個 maven 項目

  2. pom 文件中引入項目依賴

    <!-- XML 文件的聲明,指定了使用 XML 1.0 版本和 UTF-8 編碼 -->
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- 定義了 project 元素及其命名空間 -->
    <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.example</groupId><artifactId>spring-boot-template-archetype</artifactId><version>1.0.0</version><!-- 項目的打包類型,這里是 maven-archetype,表示這是一個 Maven 原型項目 --><packaging>maven-archetype</packaging><!-- 項目的名稱 --><name>spring-boot-template-archetype</name><build><extensions><extension><groupId>org.apache.maven.archetype</groupId><artifactId>archetype-packaging</artifactId><version>3.2.1</version></extension></extensions><pluginManagement><plugins><plugin><artifactId>maven-archetype-plugin</artifactId><version>3.2.1</version></plugin></plugins></pluginManagement></build>
    </project>
    
  3. 搭建工程結構

    image.png

  4. 模板文件配置好之后,使用 mvn install 命令將模板安裝到本地庫

    image.png

五、FAQ

5.1 如何刪除自定義的模板

想要刪除自定義的模板,非常簡單。按如下步驟即可:

  1. 到本地庫刪除安裝的項目即可。
  2. 執行 mvn archetype:crawl 命令,更新緩存

5.2 是否可以在模板中使用空文件夾

生成模板時并不支持空文件夾,如果遇到空文件夾在生成時會被忽略。如果想要目錄,但是目錄中又不知道放什么,可以放一個占位文件,例如創建一個名稱為 .keep 的空文件。

六、小結

自定義 Maven Archetype 項目模板是提高開發效率和一致性的強大工具。通過遵循上述最佳實踐,開發人員可以創建靈活、簡潔且易于維護的項目模板,從而顯著減少新項目的設置時間并提高開發效率。

推薦閱讀

  1. 構建安全穩定的應用:Spring Security 實用指南
  2. 深入探究 Spring Boot Starter:從概念到實踐
  3. 深入理解 Java 中的 volatile 關鍵字
  4. Spring 三級緩存
  5. 深入了解 MyBatis 插件:定制化你的持久層框架

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

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

相關文章

調用asyncio.to_thread后上下文依然一致嗎

使用Python的asyncio時&#xff0c;可以把一個同步的函數放到線程池中執行從而避免這個函數阻塞asyncio自身的事件循環。比如可以把requests庫的請求放進去 async def to_thread_do_request(url):return await asyncio.to_thread(requests.get, url)這個to_thread_do_request方…

14-20 Vision Transformer用AI的畫筆描繪新世界

概述 毫無疑問,目前最受關注且不斷發展的最重要的主題之一是使用人工智能生成圖像、視頻和文本。大型語言模型 (LLM) 已展示出其在文本生成方面的卓越能力。它們在文本生成方面的許多問題已得到解決。然而,LLM 面臨的一個主要挑戰是它們有時會產生幻覺反應。 最近推出的新模…

分布式計算、異構計算與算力共享

目錄 算力 算力共享的技術支撐 云計算技術 邊緣計算技術 區塊鏈技術 分布式計算、異構計算與算力共享 分布式計算:計算力的“集團軍作戰” 異構計算:計算力的“多兵種協同” 算力共享:計算力的“共享經濟” 深入融合,共創計算新紀元 算力共享對科研領域的影響 …

openmetadata1.3.1 自定義連接器 開發教程

openmetadata自定義連接器開發教程 一、開發通用自定義連接器教程 官網教程鏈接&#xff1a; 1.https://docs.open-metadata.org/v1.3.x/connectors/custom-connectors 2.https://github.com/open-metadata/openmetadata-demo/tree/main/custom-connector &#xff08;一&…

Matplotlib 文本

可以使用 xlabel、ylabel、text向圖中添加文本 mu, sigma 100, 15 x mu sigma * np.random.randn(10000)# the histogram of the data n, bins, patches plt.hist(x, 50, densityTrue, facecolorg, alpha0.75)plt.xlabel(Smarts) plt.ylabel(Probability) plt.title(Histo…

Qt讀取ini格式配置文件的類設計

目錄 1.引言 2.QSettings 2.1.功能特點 2.2.基本用法 3.讀取ini文件配置通用類設計 3.1.設計要點 3.2.完整實現 3.3.調用方法 4.總結 1.引言 在編寫應用程序的時&#xff0c;有些參數需要用戶配置&#xff0c;那么這些參數就涉及到存儲了&#xff0c;單從存儲來講&…

git 還原被刪除的分支

在多人項目開發中&#xff0c;有一次碰到忘記合并到master分支了&#xff0c;直接就把開發分支給刪除了&#xff0c;現在記錄下怎么還原被刪除的分支 必須保證刪除的分支之前已經被推送到了遠程倉庫 # 找出被刪除分支的最后一個提交的哈希值 git reflog show# 找到提交哈希值…

2024/07/04

1、梳理筆記(原創) 2、終端輸入一個日期&#xff0c;判斷是這一年的第幾天 scanf("%d-%d-%d",&y,&m,&d); 閏年2月29天&#xff0c;平年2月28天 #include<stdio.h> int main(int argc, char const *argv[]) {int y0,m0,d0;printf("please ente…

析構函數和拷貝構造函數

文章目錄 析構函數1.析構函數的定義&#xff1a;2.析構函數的語法&#xff1a;3.析構函數的特性&#xff1a; 拷貝構造函數1.拷貝構造函數的定義&#xff1a;2.拷貝構造函數的語法3.拷貝構造函數的特性(1)拷貝構造函數是構造函數的一個重載形式**(這個其實也很好理解&#xff0…

鴻蒙開發設備管理:【@ohos.thermal (熱管理)】

熱管理 該模塊提供熱管理相關的接口&#xff0c;包括熱檔位查詢及注冊回調等功能。 說明&#xff1a; 本模塊首批接口從API version 8開始支持。后續版本的新增接口&#xff0c;采用上角標單獨標記接口的起始版本。開發前請熟悉鴻蒙開發指導文檔&#xff1a;gitee.com/li-shi…

如何實現圖片垂直旋轉90度的問題

非常簡單的問題&#xff0c;一串代碼就可以解決。復制修改一下就可以直接使用&#xff0c;一個簡單的小demo。寫項目的時候需要寫的功能&#xff0c;不到二十行代碼就可以實現。 <html> <head><title>旋轉圖片</title><meta http-equiv"Conte…

Land survey boundary report (template)

Land survey boundary report (template) 土地勘測定界報告&#xff08;模板&#xff09;.doc

【高校科研前沿】南京地理與湖泊研究所博士后夏凡為第一作者在環境科學與水資源領域Top期刊發文:鈣對云南洱海溶解有機質與浮游細菌相互作用的調控作用

文章簡介 論文名稱&#xff1a;Calcium regulates the interactions between dissolved organic matter and planktonic bacteria in Erhai Lake, Yunnan Province, China 第一作者及單位&#xff1a;夏凡&#xff08;博士后|中國科學院南京地理與湖泊研究所&#xff09; 通訊…

Git指令

一 參考&#xff1a;https://zhuanlan.zhihu.com/p/389814854 1.clone遠程倉庫 git clone https://git.xiaojukeji.com/falcon-mg/dagger.git 2.增加當前子目錄下所有更改過的文件至index git add . 3.提交并備注‘xxx’ git commit -m ‘xxx’ 4.顯示本地分支 git branch 5.顯…

【pytorch13】激活函數及梯度

什么是激活函數 計算機科學家借鑒生物的神經元機制發明了計算機上的模型&#xff0c;這個模型與生物的神經元非常類似 激活的意思就是z變量要大于0&#xff0c;這一個節點才會激活&#xff0c;否則就會處于睡眠狀態不會輸出電平值 該激活函數在z0處不可導&#xff0c;因此不能…

Asp .Net Core 系列:基于 Castle DynamicProxy + Autofac 實踐 AOP 以及實現事務、用戶填充功能

文章目錄 什么是 AOP &#xff1f;.Net Core 中 有哪些 AOP 框架&#xff1f;基于 Castle DynamicProxy 實現 AOPIOC中使用 Castle DynamicProxy實現事務管理實現用戶自動填充 什么是 AOP &#xff1f; AOP&#xff08;Aspect-Oriented Programming&#xff0c;面向切面編程&a…

OpenCV——把YOLO格式的圖片目標截圖,并按目標類別保存

import os import cv2def get_class_folder(catagetory,class_id, base_folder):# 根據類別ID創建文件夾路徑class_folder os.path.join(base_folder, catagetory[int(class_id)])if not os.path.exists(class_folder):os.makedirs(class_folder)return class_folderdef crop_…

VPN是什么?

VPN&#xff0c;全稱Virtual Private Network&#xff0c;即“虛擬私人網絡”&#xff0c;是一種在公共網絡&#xff08;如互聯網&#xff09;上建立加密、安全的連接通道的技術。簡單來說&#xff0c;VPN就像是一條在公共道路上鋪設的“秘密隧道”&#xff0c;通過這條隧道傳輸…

圖像的反轉

圖像顏色的反轉一般分為兩種&#xff1a;一種是灰度圖片的顏色反轉&#xff0c;另一種是彩色圖像的顏色反轉。 本節使用的原圖如下&#xff1a; 1.1 灰度圖像顏色反轉 灰度圖像每個像素點只有一個像素值來表示&#xff0c;色彩范圍在0-255之間&#xff0c;反轉方法255-當前像…

信創產業政策,信創測試方面

信創產業的政策支持主要體現在多個方面&#xff0c;這些政策旨在推動產業的快速發展&#xff0c;加強自主創新能力&#xff0c;保障國家信息安全&#xff0c;以及促進產業結構的優化升級。 首先&#xff0c;政府通過財政支持、稅收優惠等方式&#xff0c;加大對信創產業的資金…