步骤 1:使用 Spring Initializr 创建父项目
- 打开IntelliJ IDEA ,选择 File > New > Project。
- 选择 Spring Initializr 并配置项目信息:
- Group ID :例如
com.aqian
,用于项目的组织标识。 - Artifact ID :例如
cangqiong
(即父项目名称),用于项目的唯一标识。 - Packaging :选择
pom
,确保父项目仅作为架构项目,无需生成src
文件夹。 - Java version:选择您项目所需的 Java 版本。
- Group ID :例如
- 选择项目依赖 :勾选所有子模块需要的公共依赖(例如 Spring Boot Web、Spring Data JPA、Spring Boot DevTools 等)。这样公共依赖会添加到父项目的
pom.xml
中,所有子模块均能继承。 - 点击 Finish,完成父项目的创建。
步骤 2:删除父项目中不需要的文件夹
-
删除自动生成的
src
文件夹,因为父项目不包含业务代码,仅用作管理。 -
保留以下文件和文件夹:
pom.xml
:父项目的核心配置文件,管理依赖和插件。.gitignore
:指定需要忽略的文件(如target
文件夹)。.idea
:IntelliJ IDEA 项目配置文件夹。
-
配置父项目
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:为父项目添加子模块
- 右键父项目 ,选择 New > Module。
- 选择 Spring Initializr 作为模块类型,然后配置子模块信息:
- Group ID :与父项目相同,例如
com.aqian
。 - Artifact ID :例如
module1
(子模块名称)。 - 不勾选公共依赖(如 Spring Boot Web、Data JPA 等),因为这些依赖已经在父项目中配置。
- Group ID :与父项目相同,例如
- 完成创建后,IDEA会生成一个包含
src
文件夹和pom.xml
的子模块。
步骤 4:清理子模块不必要的文件
-
只保留
src
文件夹和pom.xml
文件。 -
配置子模块的
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>
- 在
-
重复以上步骤 ,为其他模块创建并配置
pom.xml
,确保所有子模块继承父项目。
步骤 5:在父项目 pom.xml
中添加 <modules>
-
打开父项目的
pom.xml
文件,确保每个子模块都在<modules>
标签中。如果没有自动添加,可以手动配置,如下所示:XML<modules> <module>module1</module> <module>module2</module> <!-- 其他子模块名称 --> </modules>
步骤 6:构建和测试项目
-
在Maven工具窗口 (通常位于右侧)点击 Reload All Maven Projects,确保所有子模块和依赖加载到位。
-
使用
mvn install
命令 :在父项目的根目录下运行mvn install
命令,这会构建父项目及其所有子模块,并将生成的构建工件(如.jar
文件)安装到本地Maven仓库。mvn install
作用 :
mvn install
命令会执行项目的完整构建流程,包括以下步骤:- 编译 :将 Java 源代码编译成字节码(
.class
文件)。 - 测试:执行单元测试并生成测试报告。
- 打包 :将编译和测试后的代码打包成
.jar
文件(或其他格式,取决于pom.xml
中的配置)。 - 安装 :将打包生成的
.jar
文件安装到本地Maven仓库(默认路径为~/.m2/repository
),以便其他项目或模块可以引用这些构建工件。
通过
mvn install
,所有模块的.jar
文件将会保存在本地仓库,便于子模块间的相互依赖和项目集成。 - 编译 :将 Java 源代码编译成字节码(
最终项目结构
构建完成后,项目结构如下,每个子模块下都会有一个 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