idea生成自定义Maven原型(archetype)项目工程模板
一、什么是Maven原型(Maven archetype)
引自官网的介绍如下:
Maven原型插件官网地址

这里采用DeepSeek助手翻译如下:
Maven 原型
什么是原型?
简而言之,原型是一个 Maven 项目模板工具包。原型被定义为一种原始模式或模型,同类的所有其他事物都是由此衍生而来。这个名字很贴切,因为我们试图提供一个系统,该系统能以一致的方式生成 Maven 项目。原型将帮助作者为用户创建 Maven 项目模板,并为用户提供生成这些项目模板的参数化版本的方法。
使用原型提供了一种很好的方式,能让开发人员以与项目或组织采用的最佳实践相一致的方式快速上手。在 Maven 项目中,我们使用原型,通过提供一个示例项目,来尽可能快地让我们的用户启动并运行项目。这个示例项目展示了 Maven 的许多特性,同时向新用户介绍 Maven 所采用的最佳实践。新用户在几秒钟内就可以拥有一个可运行的 Maven 项目,以此作为跳板来进一步研究 Maven 的更多特性。我们还努力使原型机制具有可添加性,也就是说,允许将项目的一部分捕获到一个原型中,这样项目的某些部分或方面就可以添加到现有项目中。一个很好的例子就是 Maven 站点原型。例如,如果你已经使用了快速入门原型来生成一个可运行的项目,那么你可以通过在这个现有项目中使用站点原型,快速为该项目创建一个站点。你可以使用原型做任何类似这样的事情。
你可能希望在你的组织内规范 J2EE 开发,所以你可能想要为 EJB、WAR 或者你的 Web 服务提供原型。一旦这些原型被创建并部署到你组织的资源库中,组织内的所有开发人员都可以使用它们。
个人理解,Maven原型就是用于生成可自定义的,包含公用所需要的,能直接运行使用的Maven项目模板。是为了后续能帮助开发者更快速的生成和模板一致的项目工程,使得用户不需要重新整理项目骨架,直接使用默认的模板骨架,或在模板骨架上做修改即可。
二、Maven原型(Maven archetype)应用
1.在项目pom.xml文件中引入maven-archetype-plugin原型插件
这里我通常找Maven依赖的仓库地址如下,便于选择对应的版本:
https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-archetype-plugin
首先,找到自己要作为脚手架模板的项目,或者自己新建项目,然后自定义项目骨架目录,创建基础配置以及工具类等等。然后在项目pom.xml中加入maven-archetype-plugin插件。
这里我先使用idea开发工具创建Java项目,然后自定义修改项目骨架,加入子项目目录,构成简单的聚合项目。项目结构如下图:

聚合项目展开后骨架目录截图:

在项目父级pom.xml文件中加入maven-archetype-plugin插件,这里我选的是最新版本3.3.1,版本看情况选择就好,如下图:


2.使用Maven原型(archetype)打包构建Maven原型项目
构建命令如下:
archetype:create-from-project
Maven官网介绍:
此命令目标读取您的源文件和资源文件、其参数值以及您在.property文件中指定的属性,并使用它们使用Maven原型打包创建Maven原型项目。如果你构建了最终的项目,它将创建原型。然后,您可以使用此原型创建与原始项目类似的新项目。
命令说明-引自官网介绍如下:
Maven官网介绍archetype:create-from-project命令地址
archetype:create-from-project命令:表示从当前项目创建原型项目。
点击idea右侧maven图标,打开maven面板,选择父级工程名,找到插件,选择archetype:create-from-project命令,直接双击该命令,命令执行完后,会在父级项目目录下生成target目录。如下图:

archetype:create-from-project命令执行成功截图如下:

命令执行成功后,在父级根目录下,会生成target目录文件(也就是自己自定义的项目脚手架工程)。如下图:

最后我们可以把生成的脚手架项目模板加入到Maven中,便于后续创建项目时,可直接选择,来生成自定义的Maven模板项目,方便后续开发搭建项目工程。
3.添加项目模板到Maven中
找到target目录 -> generated-source -> archetype目录。如下图:

再使用idea打开archetype目录。如下图:

打开Maven面板,并执行install命令


install命令执行成功之后,执行archetype:crawl命令,此时Maven会搜索并更新本地或远程仓库中的archetype。
archetype:crawl
archetype:crawl命令的主要作用是搜索并更新仓库中的archetype。
具体来说,当你执行mvn archetype:crawl命令时,Maven会搜索并更新本地或远程仓库中的archetype。
这个命令的作用包括:
- a.搜索仓库中的archetype:Maven会遍历仓库中的所有archetype,找到所有可用的模板。
- b.更新archetype目录:根据搜索结果,更新本地仓库中的archetype目录,生成或更新archetype-catalog.xml文件,该文件包含了仓库中所有可用的archetype信息。

此时会在本地Maven仓库里生成archetype-catalog.xml原型目录配置文件如下:
archetype-catalog Maven官网配置说明
C:\Users\18292\.m2\repository\archetype-catalog.xml
archetype-catalog.xml是标准的目录文件,其中包含有关原型的信息,以便用户可以从任意数量的目录中获得原型列表以生成新项目。
生成的archetype-catalog.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<archetype-catalog xsi:schemaLocation="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0 https://maven.apache.org/xsd/archetype-catalog-1.0.0.xsd"xmlns="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><archetypes><archetype><groupId>com.learn</groupId><artifactId>learn-project-archetype</artifactId><version>1.0-SNAPSHOT</version><description>learn-project</description></archetype></archetypes>
</archetype-catalog>
三、测试使用idea工具构建新Maven项目
idea创建项目,File -> New -> Project。如下图:
a.选择Maven原型方式创建项目
b.自定义项目名称
c.指定项目存放目录
d.添加自定义的原型项目模板,在弹窗中填写上面生成的archetype-catalog.xml文件中原型项目的内容,点击Add添加。



点击创建按钮后,直接使用idea打开,等待Maven加载,加载完成后,会直接生成和自定义模板项目一样结构的Maven项目。如下图:

至此,使用Maven原型构建自定义项目模板完成。有个情况是,每次创建Maven项目,都需要手动添加本地的Archetype项目原型才可以创建。
针对这个问题,我们可以这样处理,在创建项目时,更改Catalog选项,直接选择自己本地原型配置文件。首先点击Manage catalogs按钮,添加本地自定义生成的archetype-catalog.xml配置文件。如下图:


配置好后,在Catalog配置上,我们选择我们刚添加的archetype-catalog.xml配置,会自动在下面Archetype下拉选择中列出我们自己的原型配置,直接选择,然后点击Create创建按钮,就可以生成对应的模板项目。如下图:

如此,后续创建新Maven项目时,就可以直接选择我们自定义的项目模板,来构建新项目了,便于项目框架统一管理,便于后续新项目的开发和维护。
参考博文:
Maven仓库官方地址【首选】
Maven中央仓库地址大全
maven仓库的地址
阿里云云效 Maven
idea创建java的maven聚合工程
maven之自定义archetype
在 Idea 选择自己的 Archetype 创建项目
Maven依赖管理项目构建工具
Maven安装本地的jar包和创建带模板的自定义项目
架构师必备技能:Maven Archetype生成项目模板
项目模板脚手架搭建
maven中自定义MavenArchetype的实现
相关文章:
idea生成自定义Maven原型(archetype)项目工程模板
一、什么是Maven原型(Maven archetype) 引自官网的介绍如下: Maven原型插件官网地址 这里采用DeepSeek助手翻译如下: Maven 原型 什么是原型? 简而言之,原型是一个 Maven 项目模板工具包。原型被定义为一…...
Redis面试常见问题——使用场景问题
目录 Redis面试常见问题 如果发生了缓存穿透、击穿、雪崩,该如何解决? 缓存穿透 什么是布隆过滤器? 缓存击穿 缓存雪崩 双写一致性(redis做为缓存,mysql的数据如何与redis进行同步呢?) …...
样式和ui(待更新)
element-plus 先在项目下执行安装语句执行按需导入的命令按照官方文档修改vitest.json sass样式定制 npm -i sass -D在项目下准备定制的样式文件 styles/element/index.scss(!注意这里是.scss文件在vitest.json 修改配置文件 Components({resolvers: [ElementPlusResolver(…...
大摩闭门会:250228 学习总结报告
如果图片分辨率不足,可右键图片在新标签打开图片或者下载末尾源文件进行查看 本文只是针对视频做相应学术记录,进行学习讨论使用...
线程(Thread)
一、概念 线程:线程是一个轻量级的进程 二、线程的创建 1、线程的空间 (1)进程的空间包括:系统数据段、数据段、文本段 (2) 线程位于进程空间内部 (3) 栈区独享、与进程共享文本段、…...
AI军备竞赛2025:GPT-4.5的“情商革命”、文心4.5的开源突围与Trae的代码革命
AI军备竞赛2025:GPT-4.5的“情商革命”、文心4.5的开源突围与Trae的代码革命 ——一场重塑人类认知边界的技术战争 一、OpenAI的“感性觉醒”:GPT-4.5的颠覆与争议 1.1 从“冷面学霸”到“温柔导师”:AI的情商跃迁 当用户输入“朋友放鸽子&…...
DeepSeek + 自由职业 发现新大陆,从 0 到 1 全流程跑通商业 IP
DeepSeek 自由职业 发现新大陆,从 0 到 1 全流程跑通商业 IP 商业定位1. 商业定位分析提示词2. 私域引流策略提示词3. 变现模型计算器提示词4. 对标账号分析提示词5. 商业IP人设打造提示词6. 内容选题策略提示词7. 用户人群链分析提示词8. 内容布局与转化路径设计提…...
Java进阶——常用工具类
日常开发中,Arrays、Collections 和 Objects 是非常实用的工具类,提供了丰富的功能,从而可以更高效地处理数组、集合和对象。本文将详细介绍这三个工具类的重要知识细节。 本文目录 一、 Arrays数组转集合并行排序优化Stream 支持 二、 Colle…...
【考试大纲】高级系统架构设计师考试大纲
目录 引言一、 考试说明1.考试目标2.考试要求3.考试科目设置二、 考试范围考试科目1:系统架构设计综合知识考试科目2:系统架构设计案例分析考试科目3:系统架构设计论文引言 最新的系统架构设计师考试大纲出版于 2022 年 11 月,本考试大纲基于此版本整理。 一、 考试说明…...
上位机知识篇---四种CPU架构交叉编译
文章目录 前言一、四种 CPU 架构1. x86/x86_64指令集位宽:应用场景编译工具 2. ARM指令集位宽:应用场景编译工具 3. MIPS指令集位宽应用场景编译工具 4. RISC-V指令集位宽应用场景编译工具 二、交叉编译1. 什么是交叉编译?定义应用场景 2. 交…...
隐式转换为什么导致索引失效
SELECT * FROM users WHERE id 123;这条语句失效的原因就是id是int类型的主键,比较的时候把id从int转化为字符串来比较了,而字符串的比较规则和int的比较规则明显不同,字符串是字典序比较的,还涉及到数据的长度,那为什…...
【含文档+PPT+源码】基于过滤协同算法的旅游推荐管理系统设计与实现
项目介绍 本课程演示的是一款基于过滤协同算法的旅游推荐管理系统设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套…...
SpringBoot @Value 注解使用
Value 注解用于将配置文件中的属性值注入到Spring管理的Bean中。 1. 基本用法 Value 可以直接注入配置文件中的属性值。 配置文件 (application.properties 或 application.yml) 配置文件定义需要注入的数据。 consumer:username: lisiage: 23hobby: sing,read,sleepsubje…...
Spring Boot 3.x 系列【3】Spring Initializr快速创建Spring Boot项目
有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.0.3 源码地址:https://gitee.com/pearl-organization/study-spring-boot3 文章目录 前言安装JDK 17创建Spring Boot 项目 方式1:网页在线生成方式2&#…...
高频 SQL 50 题(基础版)_1667. 修复表中的名字
高频 SQL 50 题(基础版)_1667. 修复表中的名字 select user_id ,concat(upper(substring(name,1,1)),lower(substring(name,2))) as name from Users order by user_id...
Windwos10 系统没有微软商店(Microsoft Store)怎么办?
操作方法 管理员身份打开power shell , 输入 Get-AppxPackage -AllUsers Microsoft.WindowsStore* | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “ ( ( (_.InstallLocation)\AppXManifest.xml”} 按下enter按键,就OK了...
c++同步机制
总结 多线程访问共享数据时需要加锁 多线程数据竞争 假如有一个变量shared_variable被10个线程共享,每个线程在循环中对shared_variable进行 1000 次累加操作,我们期望最终值为10000。 #include <iostream> #include <thread> #include …...
RuoYi框架介绍,以及如何基于Python使用RuoYi框架
若依框架(RuoYi)是一款基于Spring Boot和Vue.js的开源快速开发平台,广泛应用于企业级应用开发。它提供了丰富的功能模块和代码生成工具,帮助开发者快速搭建后台管理系统。 主要特点 前后端分离:前端采用Vue.js&#x…...
Go 语言环境安装
1.go官网下载安装包 All releases - The Go Programming Language 双击安装,一路下一步 2.安装完后查看版本 打开cmd 输入 以下 ,查看语言版本 go version 查看环境变量是否自动设置成功...
vector 面试点总结
ps:部分内容使用“AI”查询 一、入门 1、什么是vector 动态数组容器,支持自动扩容、随机访问和连续内存存储。 2、怎么创建-初始化vector std::vector<int> v; // 创建空vectorstd::vector<int> v {1, 2, 3}; // 直接初始化std::vec…...
OpenClaw+Qwen3-14B镜像实战:5分钟搭建飞书智能助手
OpenClawQwen3-14B镜像实战:5分钟搭建飞书智能助手 1. 为什么选择这个组合? 上周三晚上11点,我正在为第二天的部门会议整理材料时,突然冒出一个想法:能不能让AI自动处理这些重复性工作?经过一番折腾&…...
**管线流程**:模型矩阵 × 视图矩阵 × 投影矩阵 × 顶点 → GPU自动完成裁剪/光栅化
一、二进制、八进制、十六进制的转换方法(通俗版) 本质:都是“逢几进一”的计数法,只是“底数”不同(2/8/16)。 二进制(Base-2):只用 0 和 1,是计算机硬件唯一…...
idea低版本用高版本的jdk
第二步:把 Project 也改成 JDK17 File → Project Structure (CtrlAltShiftS) Project SDK → 选 17 Language level → 选 17 左边点 Modules每一个模块的 Language level 都改成 17二、分步修复(按顺序执行,100% 解决) 修复 Mav…...
这么详细的Wireshark网络抓包和分析教程,你一定要知道!Wireshark网络抓包零基础入门到精通教程建议收藏!
WireShark是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。在网络封包和流量分析领域有着十分强大功能的工具,深受各类网络…...
【数据结构】二叉树非递归前中后序遍历详解
二叉树的遍历是二叉树操作的基础核心,递归遍历实现简单但存在栈溢出风险,在处理深度较大的二叉树时,非递归遍历凭借手动维护栈的方式更具稳定性。本文将详细讲解二叉树前序、中序、后序的非递归遍历实现思路,结合 C 语言代码完整实…...
10:2026 AI变现实战总览:内容、工具、信息差三种变现闭环
作者: HOS(安全风信子) 日期: 2026-04-01 主要来源平台: GitHub 摘要: 提前剧透12大模块如何串联成3条可复制的赚钱路径。本文构建内容变现2.0闭环全图(Agentic生成)、工具/SaaS变现闭环全图(Ag…...
2026届学术党必备的六大AI科研工具解析与推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 一键生成论文功能通过借助先进人工智能算法得以达成,它可依照用户输入的标题&am…...
【AI工具】openclaw+离线模型
一、安装 1. 先换系统 apt 国内源(阿里云) # 1. 备份原来的源列表(重要!) sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak# 2. 执行替换,换成清华源 sudo sed -i s/archive.ubuntu.com/mirror…...
Linux内核设计哲学:你我承载力的艺术(续)
第七部:设备驱动——与不完美的世界和解7.1 你不是主人,你是仆人设备驱动是内核中最“卑微”的组件。它不和用户直接打交道,不参与核心决策,甚至不拥有任何资源。它只是硬件的翻译官——把内核的标准请求翻译成硬件能懂的指令&…...
嵌入式软件开发中的柔性数组机制
在嵌入式系统开发中,内存资源始终是最核心的约束之一。无论是微控制器还是低功耗控制终端,程序设计都必须在有限的存储空间中实现功能、效率与可靠性的平衡。因此,开发者不仅需要关注算法逻辑,还必须重视数据结构对内存的占用方式。 在这种背景下,柔性数组成为嵌入式软件…...
