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
相关推荐
希忘auto9 分钟前
详解MySQL安装
java·mysql
yaosheng_VALVE13 分钟前
稀硫酸介质中 V 型球阀的材质选择与选型要点-耀圣
运维·spring cloud·自动化·intellij-idea·材质·1024程序员节
冰淇淋烤布蕾20 分钟前
EasyExcel使用
java·开发语言·excel
拾荒的小海螺26 分钟前
JAVA:探索 EasyExcel 的技术指南
java·开发语言
Jakarta EE43 分钟前
正确使用primefaces的process和update
java·primefaces·jakarta ee
马剑威(威哥爱编程)1 小时前
哇喔!20种单例模式的实现与变异总结
java·开发语言·单例模式
java—大象1 小时前
基于java+springboot+layui的流浪动物交流信息平台设计实现
java·开发语言·spring boot·layui·课程设计
杨哥带你写代码2 小时前
网上商城系统:Spring Boot框架的实现
java·spring boot·后端
camellias_2 小时前
SpringBoot(二十一)SpringBoot自定义CURL请求类
java·spring boot·后端
布川ku子2 小时前
[2024最新] java八股文实用版(附带原理)---Mysql篇
java·mysql·面试