如何使用IDEA创建一个使用Gradle构建的Spring Boot聚合项目?

本文参考SpringBoot+Gradle构建多模块项目 - 知乎写成。 

一、聚合项目是什么?

有时需要创建多个有依赖关系的项目。例如在OAuth认证中,就有OAuth认证服务器、OAuth客户端、OAuth资源服务器三种角色,这三种角色至少对应3个后端项目。对有关联的多个项目分别创建项目,编码和调试时需要在不同窗口之间切换,管理起来不方便。聚合项目可以解决这个问题。
当一个项目中包含多个子项目时,这个项目就是聚合项目。包含子项目的项目也称为父项目,父项目可以为所有子项目统一提供一些基础的依赖项。在IDE内打开聚合项目只有一个窗口,编码和调试都不用切换窗口,而且可以灵活决定启动哪个项目。

本文介绍使用Intellij IDEA创建使用Gradle构建的Spring Boot聚合项目的方法。

二、创建Gradle聚合项目的步骤

1. 创建Spring Boot父项目  
(1) 打开IDEA,点击右上角的 新建项目 按钮,打开新建项目面板。  
(2) 用鼠标点击选择左侧列表中的 Spring Boot 项目。  
(3) 自行确定项目名称、目录、组、工件、包名和JDK。语言选择 Java,类型选择 Gradle - Groovy,打包方式选择 Jar。点击 下一步 按钮,进入选择依赖项面板。  


(4) 在依赖项面板中,可以选择大多数项目都能用到的依赖项,例如 Spring Boot DevTools。点击 创建 按钮,等待IDEA下载和导入项目。  


(5) 删除 src 文件夹。因为父项目不会运行,不需要src文件夹。  
(6) 修改build.gradle文件  
1) 添加subprojects  
打开build.gradle文件,在底部添加空的subprojects。 

subprojects {
}

2) 将dependencies和tasks.named('test')移入subprojects中  

subprojects {
    dependencies {
        // 如下依赖项为示例,读者可根据项目需要选择父工程的依赖项
        implementation 'org.springframework.boot:spring-boot-starter'
        compileOnly 'org.projectlombok:lombok'
        developmentOnly 'org.springframework.boot:spring-boot-devtools'
        annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
        annotationProcessor 'org.projectlombok:lombok'
        testImplementation 'org.springframework.boot:spring-boot-starter-test'
        testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
    }

    tasks.named('test') {
        useJUnitPlatform()
    }
}

3) 将插件声明添加到subprojects中  
创建的Spring Boot项目中通常会有3个插件,就在build.gradle的最上方。  

plugins {
    id 'java'
    id 'org.springframework.boot' version '3.5.3'
    id 'io.spring.dependency-management' version '1.1.7'
}

这3个插件在subprojects中的写法如下: 

subprojects {
    apply plugin: 'java'
    apply plugin: 'org.springframework.boot'
    apply plugin: 'io.spring.dependency-management'
    // subprojects中其他内容省略
}

修改完build.gradle文件后,IDEA需要重新刷新依赖项。这时编辑面板的右上方会出现 刷新 按钮,点击即可刷新项目。如果没有 刷新 按钮,也可点击右边栏的Gradle按钮,在弹出的Gradle面板中,点击左上方的刷新按钮。  


至此,父项目创建完成。  
2. 创建子项目  
(1) 打开IDEA的 项目 左边栏。在聚合项目的根目录上点击鼠标右键,在弹出来的菜单中选择 新建 → 模块,打开新建模块面板(其实就是在创建子项目)。  


(2) 在新建模块面板中,点击选择 Java,以创建普通Java模块。子项目的名称和JDK自行确定。项目位置 使用默认值,即父项目目录内,构件系统 选择 Gradle;Gralde DSL 选择 Groovy;父项默认选择之前创建父项目,如果没有,可以自己从下拉框选择父项目。点击 创建 按钮,即可创建子项目。  


(3) 创建子项目后,会自动向父项目根目录下的settings.gradle文件中添加一行文字 include 'Child1' ,表示父项目内存在名为Child1的子项目(这里我把子项目命名为Child1)。也可以像这样自行修改父项目的settings.gradle文件来添加子项目。

(4) 创建子模块时没有选择依赖项的界面。可以打开子项目的下的build.gradle文件,修改该文件中dependencies中的内容可以添加子项目独有的依赖项。修改完子项目build.gradle同样要刷新Gradle。  
(5) 打开子项目的src/main/java目录,由于没有勾选添加示例代码,所以里面是空的。可以手动添加Spring Boot启动类代码。 

package org.anonym.child1;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Child1Application {

    public static void main(String[] args) {
        SpringApplication.run(Child1Application.class);
    }

}

点击IDEA代码窗口中main方法左边的绿色三角形,即可运行子项目。运行子项目后,会自动为这个启动类创建运行配置,显示在上栏的运行调试处。  


可重复上面的步骤来创建其他子项目。  
3. 使用服务面板管理运行子项目的服务  
1) 向服务面板中添加Spring Boot运行配置  
点击左栏下方的 服务 按钮,弹出服务面板。此时服务面板中没有任何服务。依次点击 添加服务 → 运行配置 → Spring Boot,就会自动把当前项目的Spring Boot运行配置添加到服务中,后续创建的其他子项目的Spring Boot运行配置也会自动添加到服务中。  


2) 点击服务面板左侧的Spring Boot可以选中所Spring Boot启动类,再点击服务面板中间上方的 运行 或 调试 按钮,即可运行或调试所有项目。如果想运行单独某个项目,可以点击 Spring Boot下方特定项目的启动类(按住Ctrl键可以选中多个启动类),再点击 运行 或 调试 按钮,即可运行或调试选中的项目。 

posted @ 2025-07-18 20:12  Halloworlds  阅读(276)  评论(0)    收藏  举报