
正文
使用 IDEA 构建聚合工程并引入 Spring Boot
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
简介
聚合工程里可以分为:
- Project 项目,也可称为顶级项目、顶级工程、父工程
- Module 模块,也可称为子模块、子工程
总结一下:
-
这两者之间是父子继承的关系,即
模块继承顶级项目,模块之间是平级结构,可以相互依赖 - 模块可以使用顶级项目里所有的资源(依赖),模块之前如果要使用资源,必须构建依赖(构建关系)
- 一个顶级项目可以由多个不同的模块共同组合而成
项目结构
一个最简单的聚合工程的项目结构如下
└─foodie
├─foodie-common
│ └─src
└─src
创建顶级项目
-
在
New Project
弹出窗左侧中点击
Maven
,右侧的
Project SDK
选择喜欢的
JDK
版本
-
点击
Next
按钮
-
根据实际情况填写
Name
、
Location
、
GroupId
、
ArtifactId
、
Version
-
点击
Finish
按钮
-
打开
pom.xml
(默认已打开),在
<version>
标签下面添加
<packaging>pom</packaging>
标签
说明
packaging
New Project
弹出窗左侧中点击
Maven
,右侧的
Project SDK
选择喜欢的
JDK
版本
Next
按钮
Name
、
Location
、
GroupId
、
ArtifactId
、
Version
Finish
按钮
pom.xml
(默认已打开),在
<version>
标签下面添加
<packaging>pom</packaging>
标签
<packaging>
标签是指项目的打包方式(
The type of artifact this project produces
),默认为
jar
,最外层的顶级项目指定
pom
,鼠标指在标签处,会提示常见的有 4 种方式,分别是
jar、war、ear、pom
提示中也说了
Plugins can create their own packaging, and therefore their own packaging types, so this list does not contain all possible types.
,意思是你也可以创建自己的打包类型,不仅限于这 4 种
创建模块(子工程)
-
在左侧的
Project
窗口中找到顶级工程,然后在根目录上右键 -> New -> Module
-
在
New Module
弹出窗的右侧找到
Module SDK
,选择喜欢的
JDK
版本
-
点击
Next
按钮
-
根据实际情况填写
ArtifactId
(
Name
和
Location
会跟着变),然后看所有的输入项是否满足期望,不满足的手动修改一下
-
点击
Finish
按钮
Project
窗口中找到顶级工程,然后在根目录上右键 -> New -> Module
New Module
弹出窗的右侧找到
Module SDK
,选择喜欢的
JDK
版本
Next
按钮
ArtifactId
(
Name
和
Location
会跟着变),然后看所有的输入项是否满足期望,不满足的手动修改一下
Finish
按钮
创建好
Module
后,顶级项目的
pom.xml
中会自动添加
<modules>
标签,其中包含了所有依赖此顶级项目的
Module
构建依赖关系
根据上一小节步骤,再创建一个
Module
然后假设
Module A
依赖于
Module B
-
打开
Module A的pom.xml,在喜欢的位置添加<dependencies>标签(输入<,然后按一下Tab键或Enter键) -
在
<dependencies>标签里面再添加<dependency>标签(输入<,然后按一下Tab键或Enter键) -
在
<artifactId>标签内填写Module B的artifactId,例如module-b -
在
<groupId>标签内填写顶级项目的groupId,例如cn.myesn(第 3 步完成后应该会自动跳转到<groupId>标签,并且会有相应的智能提示)
完成后,
Module A
就可以直接使用
Module B
中提供的代码了
安装
如果模块与模块之间有依赖关系,根据上一小节步骤,写完依赖关系
-
点击
IDEA右侧的Maven菜单 -
在
Maven窗口中找到顶级项目,即项目名称后面有(root)字样的 -
展开顶级项目,展开
Lifecycle,双击install
这样子模块之间的依赖关系才会真正存在
顶级项目引入 Spring Boot
-
打开顶级项目的
pom.xml
-
在
<moduleVersion>
标签下添加以下代码:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.5</version>
</parent>
-
在
<properties>
标签里面添加以下代码:
<!-- 整体源码文件的编码设置 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 整体源码文件编译后输出文件的编码设置 -->
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- 整体项目 JDK 的版本号 -->
<java.version>1.8</java.version>
-
在
<properties>
标签下面添加以下代码:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<!-- 这里排除 logging 是因为后期要集成其他的 logging 组件 -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
-
点击
IDEA
软件右侧的
Maven
,找到顶级项目,然后双击
Lifecycle
里面的
install
接口层模块项目配置
pom.xml
<moduleVersion>
标签下添加以下代码:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.5</version>
</parent>
<properties>
标签里面添加以下代码:
<!-- 整体源码文件的编码设置 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 整体源码文件编译后输出文件的编码设置 -->
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- 整体项目 JDK 的版本号 -->
<java.version>1.8</java.version>
<properties>
标签下面添加以下代码:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<!-- 这里排除 logging 是因为后期要集成其他的 logging 组件 -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
IDEA
软件右侧的
Maven
,找到顶级项目,然后双击
Lifecycle
里面的
install
假设已经创建了
api
模块,然后按以下步骤操作:
-
在
api -> src -> main -> resources路径下创建一个application.yml文件 -
在
api -> src -> main -> java路径下创建一个包文件夹,例如cn.myesn,后续用这个举例 -
在
cn.myesn包下创建Application.java文件,然后在里面编写以下代码:package cn.myesn; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
-
在
cn.myesn包下创建一个controller的文件夹 -
在
controller文件夹下创建一个HiController.java文件,然后在里面编写如下代码:package cn.myesn.controller; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
public class HiController { @GetMapping("hi")
public ResponseEntity<String> hi(){
return ResponseEntity.ok("hi");
}
}
-
点击
IDEA软件右侧的Maven,找到顶级项目,然后双击Lifecycle里面的install -
右键
Application.java文件,单击Run 'Application'按钮 -
打开浏览器,输入
http://localhost:8080/hi,此时应该能看到页面显示了hi的字样





