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

苍穹外卖是如何从0搭建一个标准的 Maven 多模块项目​​的?

核心概念理解

首先,理解两个关键概念:

  1. ​父项目/聚合模块​​:就是你图片中最顶层的项目(sky-take-out),它本身的 pom.xml主要功能是​​管理​​:声明它包含了哪些子模块,并统一管理所有子模块的公共依赖和插件版本。

  2. ​子模块​​:就是 sky-commonsky-pojosky-server这些具体的功能模块。它们有自己独立的 pom.xml,继承父项目的配置,并声明自己特有的依赖。

太棒了!从你提供的图片可以清晰地看出,​​“苍穹外卖”项目是一个标准的 Maven 多模块项目​​。这种结构非常适合像你们这样分工明确的中大型项目,因为它可以实现代码的复用、模块化管理和依赖清晰化。

下面我为你详细讲解如何在 IntelliJ IDEA 中从头创建这样一个多模块项目,并解释其核心思想。


🛠️ 一步步创建多模块项目

第一步:创建父项目(聚合项目)

父项目本身通常不写业务代码,它只是一个“容器”。

  1. ​新建项目​​:打开 IDEA,选择 File-> New-> Project...

  2. ​选择Maven​​:在左侧选择 Maven。不要勾选 Create from archetype(我们从零开始创建)。直接点击 Next

  3. ​填写坐标​​:

    • ​GroupId​​: com.sky(根据项目实际修改)

    • ​ArtifactId​​: sky-take-out(这是父项目的名称)

    • ​Version​​: 默认 1.0-SNAPSHOT即可。

  4. ​完成创建​​:点击 Finish。IDEA 会创建一个最基础的 Maven 项目,里面只有一个 pom.xml文件。(会有.idea,src, pom.xml,直接删除src)

第二步:修改父项目的 pom.xml

这是最关键的一步,需要将打包方式改为 pom,并预先声明子模块。(这一步不修改也可以)

<?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.sky</groupId><artifactId>sky-take-out</artifactId><version>1.0-SNAPSHOT</version><!-- 关键!打包方式必须为 pom --><packaging>pom</packaging><!-- 1. 在这里预先声明所有子模块 --><modules><module>sky-common</module><module>sky-pojo</module><module>sky-server</module></modules><!-- 2. 在这里统一管理所有模块的公共依赖版本 --><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring-boot.version>2.7.18</spring-boot.version><!-- 其他依赖版本 --></properties><!-- 3. 依赖管理(可选但推荐),子模块引用这里的依赖无需写版本 --><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency><!-- 其他需要统一版本的依赖 --></dependencies></dependencyManagement>
</project>

第三步:创建子模块

现在,我们基于父项目来创建子模块。

  1. ​右键父项目​​:在 IDEA 的项目工具窗口中,右键点击父项目名称(sky-take-out)。

  2. ​新建模块​​:选择 New-> Module...

  3. ​同样选择Maven​​:和创建父项目一样,选择 Maven,不选 Archetype,点击 Next

  4. ​填写子模块坐标​​:

    • ​Name​​: sky-common(IDEA 会自动将 ArtifactId填充为同名)。

    • 注意看 ​​Parent​​ 一栏,应该已经自动显示为 com.sky:sky-take-out。这非常重要!

  5. ​完成创建​​:点击 Finish

重复步骤 1-5,依次创建 sky-pojo和 sky-server模块。创建完成后,你的项目结构就会和图片中一模一样了。

💡 多模块项目设计思路(为什么这么分?)

理解每个模块的职责,对你后续开发和维护至关重要:

  • sky-common​:​​公共工具模块​​。存放整个项目通用的类,如常量、工具类(DateUtils, StringUtils)、基础配置、异常处理、通用AOP等。​​所有其他模块都可以依赖它。​

  • sky-pojo​:​​实体/模型模块​​。存放所有数据模型类,如与数据库表对应的Entity、前后端交互的DTO/VO、查询参数Query等。​sky-server会依赖它。​

  • sky-server​:​​主应用模块​​。包含Spring Boot启动类、控制器Controller、业务服务Service、数据层Mapper/Repository、配置文件等。它是最终需要运行和打包的模块。​​它会依赖 sky-common和 sky-pojo。​

✅ 验证与运行

创建完成后,在IDEA右侧的Maven工具窗口中,你应该能看到一个清晰的树形结构。你可以点击父项目的 Lifecycle中的 cleancompilepackage等命令,Maven会按照依赖顺序自动构建所有模块。

http://www.dtcms.com/a/519825.html

相关文章:

  • 网站建设竞品调研上海注册公司免费地址
  • 宣传网站制作方案网站架构演变过程
  • K8S 二进制集群搭建(一主两从)
  • 每日一个C语言知识:C typedef
  • 交叉编译FFmpeg:从x264到RK3588部署实战
  • LeetCode算法日记 - Day 82: 环形子数组的最大和
  • Leetcode 36
  • 深入理解epoll:为什么推荐使用epoll_create1而不是epoll_create?
  • 公司被其它人拿来做网站营销渠道的概念
  • 在 Linux 下使用 I2C(Inter-Integrated Circuit)进行用户态编程 — 教程与实战
  • 替代HT1621B液晶驱动显示模块芯片程序演示
  • C++和OpenGL实现3D游戏编程【连载26】——添加TransformComponent组件(设置子物体的位移、旋转、缩放)
  • 常规条形光源在工业视觉检测上的应用
  • Zotero插件安装
  • Llama Factory、Unsloth与Hugging Face三大微调平台深度对比分析
  • 电脑卡在 “正在准备 Windows”?5 步解决:从等待到重装
  • 优惠券网站要怎么做的佛山禅城网站建设
  • 基于深度学习计算s21参数,在射频中的应用
  • 微服务day01——拆分作业参考
  • YOLO11训练后的模型无法正常推理解决办法
  • 网站模版 优帮云深圳网络安全公司排名
  • navicat过期了,怎么操作mysql。用DBeaver
  • LangGraph工作流与智能体核心模式总结
  • redis常见问题解决
  • 网站顶部有空白网络营销是什么时候出现的
  • NFS文件存储
  • 07_朴素贝叶斯
  • 【源码项目】简单实现的WPF浏览器,有兴趣的可以自己扩展(带源码)
  • 大连做网站哪家好一点商务网站建设用的是什么软件
  • Mybatis一级缓存