IDEA中创建多模块项目步骤

步骤 1:使用 Spring Initializr 创建父项目

  1. 打开IntelliJ IDEA ,选择 File > New > Project
  2. 选择 Spring Initializr 并配置项目信息:
    • Group ID :例如 com.aqian,用于项目的组织标识。
    • Artifact ID :例如 cangqiong(即父项目名称),用于项目的唯一标识。
    • Packaging :选择 pom,确保父项目仅作为架构项目,无需生成 src 文件夹。
    • Java version:选择您项目所需的 Java 版本。
  3. 选择项目依赖 :勾选所有子模块需要的公共依赖(例如 Spring Boot Web、Spring Data JPA、Spring Boot DevTools 等)。这样公共依赖会添加到父项目的 pom.xml 中,所有子模块均能继承。
  4. 点击 Finish,完成父项目的创建。

步骤 2:删除父项目中不需要的文件夹

  1. 删除自动生成的 src 文件夹,因为父项目不包含业务代码,仅用作管理。

  2. 保留以下文件和文件夹

    • pom.xml:父项目的核心配置文件,管理依赖和插件。
    • .gitignore:指定需要忽略的文件(如 target 文件夹)。
    • .idea:IntelliJ IDEA 项目配置文件夹。
  3. 配置父项目 pom.xml 文件 :确保 packaging 设置为 pom,并在 <dependencyManagement> 中添加通用依赖。

    XML 复制代码
    <packaging>pom</packaging>
    
    <dependencyManagement>
        <dependencies>
            <!-- 父项目定义的公共依赖,子模块会自动继承 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency>
            <!-- 可以添加其他所有子模块需要的依赖 -->
        </dependencies>
    </dependencyManagement>
    
    <build>
        <plugins>
            <!-- Spring Boot 插件,用于运行和打包 Spring Boot 应用 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

步骤 3:为父项目添加子模块

  1. 右键父项目 ,选择 New > Module
  2. 选择 Spring Initializr 作为模块类型,然后配置子模块信息:
    • Group ID :与父项目相同,例如 com.aqian
    • Artifact ID :例如 module1(子模块名称)。
    • 不勾选公共依赖(如 Spring Boot Web、Data JPA 等),因为这些依赖已经在父项目中配置。
  3. 完成创建后,IDEA会生成一个包含 src 文件夹和 pom.xml 的子模块。

步骤 4:清理子模块不必要的文件

  1. 只保留 src 文件夹和 pom.xml 文件

  2. 配置子模块的 pom.xml

    • <parent> 中设置子模块继承父项目配置,并删除 <relativePath/> 标签,避免路径配置错误。
    • 删除 <build> 配置,使子模块直接使用父项目的构建配置,避免冗余。

    示例子模块的 pom.xml

    XML 复制代码
    <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.aqian</groupId>
            <artifactId>cangqiong</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </parent>
    
        <groupId>com.aqian</groupId>
        <artifactId>module1</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    
        <dependencies>
            <!-- 子模块特定的依赖(如果有)可以在这里添加 -->
        </dependencies>
    </project>
  3. 重复以上步骤 ,为其他模块创建并配置 pom.xml,确保所有子模块继承父项目。

步骤 5:在父项目 pom.xml 中添加 <modules>

  1. 打开父项目的 pom.xml 文件,确保每个子模块都在 <modules> 标签中。如果没有自动添加,可以手动配置,如下所示:

    XML 复制代码
    <modules>
        <module>module1</module>
        <module>module2</module>
        <!-- 其他子模块名称 -->
    </modules>

步骤 6:构建和测试项目

  1. 在Maven工具窗口 (通常位于右侧)点击 Reload All Maven Projects,确保所有子模块和依赖加载到位。

  2. 使用 mvn install 命令 :在父项目的根目录下运行 mvn install 命令,这会构建父项目及其所有子模块,并将生成的构建工件(如 .jar 文件)安装到本地Maven仓库。

    mvn install 作用
    mvn install 命令会执行项目的完整构建流程,包括以下步骤:

    • 编译 :将 Java 源代码编译成字节码(.class 文件)。
    • 测试:执行单元测试并生成测试报告。
    • 打包 :将编译和测试后的代码打包成 .jar 文件(或其他格式,取决于 pom.xml 中的配置)。
    • 安装 :将打包生成的 .jar 文件安装到本地Maven仓库(默认路径为 ~/.m2/repository),以便其他项目或模块可以引用这些构建工件。

    通过 mvn install,所有模块的 .jar 文件将会保存在本地仓库,便于子模块间的相互依赖和项目集成。

最终项目结构

构建完成后,项目结构如下,每个子模块下都会有一个 target 文件夹,用于存放构建结果:

bash 复制代码
cangqiong/
├── pom.xml                  # 父项目 POM 文件,包含依赖管理和模块配置
├── .gitignore               # Git 忽略文件
├── .idea/                   # IDEA 项目配置
├── module1/
│   ├── src/                 # 子模块的源代码目录
│   ├── target/              # 子模块的构建结果目录(由mvn install生成)
│   └── pom.xml              # 子模块的 POM 文件,继承父项目
└── module2/
    ├── src/
    ├── target/
    └── pom.xml

注意

  • 每个子模块的 target 文件夹在运行 mvn install 或其他构建命令时自动生成,包含 .class 文件、测试报告、打包的 .jar 文件等。建议在 .gitignore 中忽略 target 文件夹,避免提交到版本控制系统中。

完整的.gitignore 文件配置如下,其中规定了哪些文件不提交到git仓库。

bash 复制代码
# IntelliJ IDEA 配置
.idea/
*.iml

# Maven 编译输出目录
**/target/

# 忽略操作系统生成的临时文件
.DS_Store
Thumbs.db
相关推荐
步木木10 分钟前
Anaconda和Pycharm的区别,以及如何选择两者
ide·python·pycharm
xyliiiiiL13 分钟前
一文总结常见项目排查
java·服务器·数据库
shaoing15 分钟前
MySQL 错误 报错:Table ‘performance_schema.session_variables’ Doesn’t Exist
java·开发语言·数据库
腥臭腐朽的日子熠熠生辉1 小时前
解决maven失效问题(现象:maven中只有jdk的工具包,没有springboot的包)
java·spring boot·maven
ejinxian1 小时前
Spring AI Alibaba 快速开发生成式 Java AI 应用
java·人工智能·spring
杉之1 小时前
SpringBlade 数据库字段的自动填充
java·笔记·学习·spring·tomcat
圈圈编码1 小时前
Spring Task 定时任务
java·前端·spring
俏布斯2 小时前
算法日常记录
java·算法·leetcode
27669582922 小时前
美团民宿 mtgsig 小程序 mtgsig1.2 分析
java·python·小程序·美团·mtgsig·mtgsig1.2·美团民宿
爱的叹息2 小时前
Java 连接 Redis 的驱动(Jedis、Lettuce、Redisson、Spring Data Redis)分类及对比
java·redis·spring