0

0

Maven Archetype 多 Module 自定义代码脚手架

蓮花仙者

蓮花仙者

发布时间:2025-07-20 12:32:10

|

893人浏览过

|

来源于php中文网

原创

大多数公司都有一个通用的模板项目,帮助你快速创建一个新项目。这种项目通常需要集成一些公司内部的中间件、单元测试、标准的代码格式和通用的代码分层等。

今天,我们将利用 Maven 的 Archetype 插件来简化这一过程。

Maven Archetype 多 Module 自定义代码脚手架从上图可以清楚地看到,利用这个插件机制只需几个简单的步骤:

  1. archetype:create-from-project:根据自己的项目代码生成原型项目。
  2. 通过 install 等命令生成原型文件。
  3. archetype:generate:通过原型生成目标项目。

看起来很简单,但如果你按照网上找到的资料操作,你会发现生成的项目可能不够理想,甚至包括官方文档也无法完全解决问题。步骤似乎很简单,但实际上会遇到许多问题,比如 module 名称不会变化、包名改变后代码中未更新,依赖报错等。

接下来,我们详细说明如何创建和使用 Archetype。

创建 Archetype

首先,准备好我们自己的模板项目,确保代码都是正确的。

进入项目根目录,执行以下命令:

mvn archetype:create-from-project

执行后,项目根目录下会生成 target 文件夹。这个步骤很简单,不会有任何障碍。请注意每个模块的名字,我已经对其进行了修改。

Maven Archetype 多 Module 自定义代码脚手架这里最关键的部分是如何修改 target/generated-sources/src/main/resources/archetype-resources 下的文件。

如果不进行修改,直接继续的话,最终生成的项目会发现 module 的名称不会变化,包名也不会更新,代码中引用的依赖会出现大量错误。

接下来,我们看看如何修改这些问题。

修改父 pom

首先,找到根目录的 pom 文件,会发现缺少 module 信息,必须添加以下内容:


    ${rootArtifactId}-client
    ${rootArtifactId}-common
    ${rootArtifactId}-service
    ${rootArtifactId}-facade
    ${rootArtifactId}-starter

父 pom 中引用的每个 module 也要修改,groupIdartifactId 按照以下方式修改,不要写死:


    
        
            ${groupId}
            ${rootArtifactId}-client
            ${project.version}
        
        ... ...
    

修改 module

默认生成的 module 可能还是模板项目的名字,需要修改成类似 __rootArtifactId__-client 的形式,注意是双下划线。

citySHOP 多用户商城
citySHOP 多用户商城

citySHOP是一款集CMS、网店、商品、系统,管理更加科学快速;全新Jquery前端引擎;智能缓存、图表化的数据分析,手机短信营销;各种礼包设置、搭配购买、关联等进一步加强用户体验;任何功能及设置都高度自定义;MVC架构模式,代码严禁、规范;商品推荐、促销、礼包、折扣、换购等多种设置模式;商品五级分类,可自由设置分类属性;商品展示页简介大方,清晰,图片自动放大,无需重开页面;商品评价、咨询分开

下载

然后,module 中的互相引用 groupIdartifactId 按照父 pom 的方式对应修改。

修改 archetype-metadata

找到 META-INF/maven/archetype-metadata.xml 文件,修改 modules 相关的部分,重点注意 iddirname 的修改方式:


    
        
            
                src/main/java
                
                    **/*.java
                
            
        
    
    ... ...

修改完成后,进入 target/generated-sources/archetype 目录,执行以下命令:

mvn install

顺便执行 mvn deploy 上传到 Nexus。

使用 Archetype

经过上述步骤,原型 Archetype 已经创建完成。最大的挑战在于前面的修改步骤,花费了大量时间。

接下来,我们看看如何使用 Archetype,有两种使用方式。

命令行使用

随便进入你想保存项目的路径,执行以下命令:

mvn archetype:generate -DarchetypeCatalog=local

依次按照提示输入 groupIdartifactId 即可完成创建。

让其他人使用

你的本地 Maven 仓库目录(比如 ~/.m2/repository)有一个文件 archetype-catalog.xml,共享给其他人即可。



    
        
            com.example
            template-archetype
            1.0.0-SNAPSHOT
            Example Project
        
    

在 IDEA 中使用

在 IDEA 中新建项目,选择 Maven,勾选 "Create from archetype",然后选择 "Add Archetype..."。

Maven Archetype 多 Module 自定义代码脚手架接着,输入我们自定义的 Archetype 的 GroupIdArtifactIdVersion 信息。

添加成功后,你就可以在列表中看到我们自己的 archetype,然后按照流程创建即可。

相关专题

更多
什么是中间件
什么是中间件

中间件是一种软件组件,充当不兼容组件之间的桥梁,提供额外服务,例如集成异构系统、提供常用服务、提高应用程序性能,以及简化应用程序开发。想了解更多中间件的相关内容,可以阅读本专题下面的文章。

178

2024.05.11

Golang 中间件开发与微服务架构
Golang 中间件开发与微服务架构

本专题系统讲解 Golang 在微服务架构中的中间件开发,包括日志处理、限流与熔断、认证与授权、服务监控、API 网关设计等常见中间件功能的实现。通过实战项目,帮助开发者理解如何使用 Go 编写高效、可扩展的中间件组件,并在微服务环境中进行灵活部署与管理。

212

2025.12.18

Java Maven专题
Java Maven专题

本专题聚焦 Java 主流构建工具 Maven 的学习与应用,系统讲解项目结构、依赖管理、插件使用、生命周期与多模块项目配置。通过企业管理系统、Web 应用与微服务项目实战,帮助学员全面掌握 Maven 在 Java 项目构建与团队协作中的核心技能。

0

2025.09.15

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1881

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

2087

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

1012

2024.11.28

idea快捷键大全
idea快捷键大全

本专题为大家提供idea快捷键相关的文章,帮助大家解决问题。

164

2023.08.03

idea如何集成Tomcat
idea如何集成Tomcat

idea集成Tomcat的步骤:1、添加Tomcat服务器配置;2、配置项目部署;3、运行Tomcat服务器;4、访问项目;5、注意事项;6、关闭Tomcat服务器。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

167

2024.02.23

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

71

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 4.2万人学习

Rust 教程
Rust 教程

共28课时 | 4.5万人学习

Kotlin 教程
Kotlin 教程

共23课时 | 2.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号