You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle多模块Spring Boot项目如何跨模块引用其他模块的启动类?

解决模块B无法识别模块A中Main类的配置步骤
  • 核心原因是模块B的测试代码未声明对模块A主代码的依赖,同时如果模块A是Spring Boot可执行模块,默认打包格式不支持被其他模块依赖,按以下步骤修改即可:

1. 先调整模块A的打包配置(必做,如果模块A应用了Spring Boot插件)

模块A的build.gradle中添加以下配置,生成可供其他模块依赖的普通Jar包:

jar {
    enabled = true
}

// 可执行Jar加标识后缀,避免和普通Jar冲突
bootJar {
    classifier = 'boot'
}

如果使用Kotlin DSL,对应配置如下:

tasks.jar {
    enabled = true
}

tasks.bootJar {
    archiveClassifier.set("boot")
}

2. 调整模块B的依赖配置

在模块B的build.gradle的依赖块中,声明测试阶段对模块A的依赖:
Groovy DSL示例:

dependencies {
    // 替换为你项目中模块A的实际名称
    testImplementation project(':module-a')
    // 其他原有依赖保持不变
}

Kotlin DSL示例:

dependencies {
    testImplementation(project(":module-a"))
    // 其他原有依赖保持不变
}

3. 可选:统一依赖版本避免冲突

如果配置后出现Spring Boot相关依赖版本冲突,在模块B的插件块中引入依赖管理插件,和根项目/模块A保持版本一致即可:

plugins {
    id 'java'
    id 'org.springframework.boot' version '你项目使用的Spring Boot版本号' apply false
    id 'io.spring.dependency-management'
}

配置完成后刷新Gradle项目,即可在模块B的测试类中正常导入并引用Main.class。

内容的提问来源于stack exchange,提问作者RahuL Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 04:18:03