使用spring依赖管理无法解析依赖
Posted
技术标签:
【中文标题】使用spring依赖管理无法解析依赖【英文标题】:Using spring dependency management can't resolve dependency 【发布时间】:2021-07-05 19:36:01 【问题描述】:您好,我在使用 spring 依赖管理插件时遇到了解决依赖问题
我有一个带有子项目的 gradle 项目,我正在使用这个配置。
build.gradle 文件
buildscript
repositories
mavenCentral()
plugins
id "io.spring.dependency-management" version '1.0.11.RELEASE'
id 'org.springframework.boot' version '2.4.4'
apply from: './main.gradle'
main.gradle 文件
subprojects
apply plugin: "java"
apply plugin: "jacoco"
apply plugin: 'io.spring.dependency-management'
sourceCompatibility = JavaVersion.VERSION_1_8
repositories
mavenCentral()
dependencies
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'io.projectreactor:reactor-test'
implementation 'io.projectreactor:reactor-core'
implementation 'io.projectreactor.addons:reactor-extra'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
testCompileOnly 'org.projectlombok:lombok'
jacoco
toolVersion = '0.8.2'
如您所见,我正在尝试为项目中的每个子项目加载一些依赖项,例如 io.projectreactor:reactor-core
当我运行 gradle refresh 时,我在我的 intellij IDE 控制台上收到这条消息(对于每个子项目):
Could not resolve: org.projectlombok:lombok
Could not resolve: io.projectreactor:reactor-core
Could not resolve: io.projectreactor.addons:reactor-extra
Could not resolve: org.springframework.boot:spring-boot-starter-test
Could not resolve: io.projectreactor:reactor-test
如果我将版本显式放在依赖项块中,则 gradle resolve 没有问题,但我不希望这样
关于这个问题的任何想法?我该如何验证它?
Gradle Wrapper 版本:6.8.3(intellij 配置为使用默认 gradle wrapper)
感谢您的帮助
问候!
【问题讨论】:
您还需要 Spring Boot 插件,否则版本将无法解析。 【参考方案1】:我解决了这个问题,正如@m-deinum 建议的那样,我在根项目的依赖项上缺少 spring-boot-gradle-plugin。
谢谢
【讨论】:
【参考方案2】:将“org.springframework.boot”添加到每个子模块的build.gradle
的plugins
部分:
plugins
...
id 'org.springframework.boot'
在这种情况下您不需要指定版本,因为它已经在根build.gradle
中指定了
【讨论】:
嗨@amseager 我在 main.gradle 文件的子项目块中添加了apply plugin: 'org.springframework.boot'
,这解决了在进行 gradle 刷新时出现的消息。但是现在我遇到了另一个问题,当运行 gradle build one subproject (domain-usecase) 时,它在另一个子项目 (domain-model) 中找不到类。我收到错误:包不存在。即使我在项目域用例上有dependencies implementation project(':domain-model')
以上是关于使用spring依赖管理无法解析依赖的主要内容,如果未能解决你的问题,请参考以下文章
即使依赖项存在于类路径中,Spring boot 仍显示“无法解析”
ivy 无法解析 org.springframework 依赖项
从 Spring Boot 1.5.10 迁移到 2.0.0 时无法解析依赖项
无法解析外部依赖 org.springframework.boot:spring-boot-starter: 因为没有定义存储库