当前位置: 首页 > news >正文

如何创建一个父类 Maven项目,然后在父类下再创建子项目,构建多模块 Maven 项目

文章目录

  • 步骤一:创建父类 Maven 项目(聚合模块)
  • 步骤二:添加子模块(Maven 子项目)
  • 步骤三:构建父子项目
  • 步骤四:添加更多子模块(如果需要)
  • 最后总结

Spring Tool Suite (STS) 中创建一个父类 Maven 项目,并在其下创建子项目的过程,其实就是构建一个 多模块 Maven 项目。
父模块是一个 聚合模块( Aggregator Module),它通常用于管理子模块的依赖关系和构建过程。
下面是具体的步骤:

步骤一:创建父类 Maven 项目(聚合模块)

1、打开 Spring Tool Suite (STS),点击菜单栏上的 File -> New -> Maven Project

2、在 New Maven Project 向导页面中,选择一个合适的工作区(例如:选择 Create a simple project (skip archetype selection))。

3、在 Group IdArtifact Id 中填写我们父类项目的标识符。举个例子:

  • Group Idcom.example
  • Artifact Idparent-project
  • Version1.0-SNAPSHOT
  • 点击 FinishSTS 会创建一个基础的 Maven 父项目。

4、然后打开 pom.xml 文件,在 <packaging> 标签中设置为 pom,这是为了标识该项目为父类项目,不会打包成 jarwar 文件。

<packaging>pom</packaging>

5、父模块的 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.example</groupId><artifactId>parent-project</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><modules><!-- 这里将包含子模块 --></modules><dependencyManagement><dependencies><!-- 父模块管理的公共依赖可以在这里添加 --></dependencies></dependencyManagement><build><pluginManagement><plugins><!-- 父模块管理的插件配置可以在这里添加 --></plugins></pluginManagement></build>
</project>

步骤二:添加子模块(Maven 子项目)

1、在 父类项目的根目录,右键点击,选择 New -> Module。这会让我们创建一个新的 Maven 模块。

2、在 New Module Wizard 中,选择 Maven 项目类型,点击 Next

3、为子模块设置 Group IdArtifact Id(与父模块一致的 Group Id 但不同的 Artifact Id)。例如:

  • Group Idcom.example
  • Artifact Idchild-project
  • Version1.0-SNAPSHOT

4、点击 Finish 创建子模块。

5、然后打开 子模块的 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><parent><groupId>com.example</groupId><artifactId>parent-project</artifactId><version>1.0-SNAPSHOT</version><relativePath>../pom.xml</relativePath> <!-- 指向父项目的 pom.xml --></parent><artifactId>child-project</artifactId><version>1.0-SNAPSHOT</version>
</project>

6、在父项目的 pom.xml 文件中,使用 <modules> 标签来列出所有子模块,例如:

<modules><module>child-project</module>
</modules>

步骤三:构建父子项目

1、在父项目中,右键点击 pom.xml 文件,选择 Maven -> Update Project 来更新项目。
2、然后我们可以选择在父项目中运行构建命令,这会自动构建父项目和所有的子模块。
我们可以通过 Run As -> Maven Build... 来执行 mvn clean install 或其他构建命令。

步骤四:添加更多子模块(如果需要)

我们可以继续在父项目中添加更多的子项目,只需重复 步骤二 中创建子模块的过程,并将新的子模块添加到父项目的 <modules> 标签下。

最后总结

  • 父类 Maven 项目是一个管理和构建多个子模块的容器。它的
    pom.xml 配置了整个项目的构建、依赖和插件。
  • 每个 子模块 都继承自父项目,它们共享父项目的依赖、插件和其他配置。
  • 父项目中使用 <modules> 标签列出子模块,在子模块的 pom.xml 中通过 <parent> 标签引用父项目。

通过这种方式,我们可以轻松地创建和管理一个多模块的 Maven 项目,这在开发大型应用程序时特别有用。


文章转载自:

http://LHuEfAdd.kjdxh.cn
http://06CET40h.kjdxh.cn
http://J6O67LS2.kjdxh.cn
http://EW31v3kQ.kjdxh.cn
http://6h6swVQp.kjdxh.cn
http://Ytnm84RQ.kjdxh.cn
http://Jrz5cxFs.kjdxh.cn
http://GzMpI32C.kjdxh.cn
http://skepPKcl.kjdxh.cn
http://EbokfwOQ.kjdxh.cn
http://8Q3XaO86.kjdxh.cn
http://X6uO0oa5.kjdxh.cn
http://27vax69z.kjdxh.cn
http://cEYefxsU.kjdxh.cn
http://ZnUZW4wa.kjdxh.cn
http://UIAaSp2F.kjdxh.cn
http://RhfIqeVh.kjdxh.cn
http://yq1OfAYu.kjdxh.cn
http://cx039Bo0.kjdxh.cn
http://hOBO5NbR.kjdxh.cn
http://bYIOtAWw.kjdxh.cn
http://MhYE6ROP.kjdxh.cn
http://Nx3tJy4g.kjdxh.cn
http://J4OwCJYJ.kjdxh.cn
http://eEzDJ3TY.kjdxh.cn
http://JoEu9uUE.kjdxh.cn
http://GYZriW6Q.kjdxh.cn
http://Y6AlEYyt.kjdxh.cn
http://kclq4wYw.kjdxh.cn
http://pu28uoor.kjdxh.cn
http://www.dtcms.com/a/152019.html

相关文章:

  • 深入浅出JavaScript常见设计模式:从原理到实战(1)
  • 基于Python+Flask的MCP SDK响应式文档展示系统设计与实现
  • 第J5周:DenseNet+SE-Net实战
  • 机器学习漏洞大汇总——利用机器学习服务
  • 手撕C++STL list:深入理解双向链表的实现
  • 电子病历高质量语料库构建方法与架构项目(计划篇)
  • CSS3 基础(背景-文本效果)
  • Flask + ajax上传文件(二)--多文件上传
  • 【数据分析】酵母实验多指标数据的 R 语言分析与可视化
  • Day-3 应急响应实战
  • 深入解析微软MarkitDown:原理、应用与二次开发指南
  • 使用深度 Q 学习解决Lunar lander问题
  • arm64适配系列文章-第六章-arm64环境上rabbitmq-management的部署,构建cluster-operator
  • Web3钱包开发功能部署设计
  • Pikachu靶场
  • 【LLM+Code】Windsurf Agent 模式PromptTools详细解读
  • Rundeck 介绍及安装:自动化调度与执行工具
  • 如何在 Odoo 18 中配置自动化动作
  • 第54讲:总结与前沿展望——农业智能化的未来趋势与研究方向
  • WAMP设置外网访问
  • DNS主从同步及解析
  • 深度对比评测:n8n vs Coze(扣子) vs Dify - 自动化工作流工具全解析
  • Flink 源码编译
  • 数据库进阶之MySQL 程序
  • 精益数据分析(19/126):走出数据误区,拥抱创业愿景
  • 浅谈国产数据库多租户方案:提升云计算与SaaS的资源管理效率
  • arm64适配系列文章-第三章-arm64环境上mariadb的部署
  • Spring 过滤器详解:从基础到实战应用
  • Kafka的ISR机制是什么?如何保证数据一致性?
  • Milvus(5):Collections 查看、修改、加载和释放、删除