How to solve error: package org.springframework.context.annotation does not exist import org.springframework.context.annotation.Bean?
How to solve error: package org.springframework.context.annotation does not exist import org.springframework.context.annotation.Bean?
将 gradle 包装器更新到版本 7.3.2 后,我在尝试构建我的 spring 启动项目时收到以下错误:
error: package org.springframework.context.annotation does not exist
import org.springframework.context.annotation.Bean;
为什么会这样?
更新:
找到了问题,但还不知道如何解决。
我的项目中有多个模块。我有一个被其他模块使用的“通用”模块。在旧 gradle 版本中,公共项目的库被添加到其他模块的 compileClasspath 中,而在新版本中,它只将它们添加到 runtimeClasspath 中。
依赖项过去被声明为编译,现在 gradle 7+ 我不得不将它们更改为实现。
有什么建议吗?
在其他模块中:
dependencies {
implementation project(':common')
...
}
在公共模块中:
dependencies {
implementation spring.web
...
}
如果你使用 java-library 而不是 java plugin
,我认为你的传递性有问题
plugins {
id 'java-library'
}
https://docs.gradle.org/current/userguide/java_library_plugin.html#java_library_plugin
那么你可以使用 api 而不是 compile 这可以帮助
你可以看到一个很好的解释
将 gradle 包装器更新到版本 7.3.2 后,我在尝试构建我的 spring 启动项目时收到以下错误:
error: package org.springframework.context.annotation does not exist
import org.springframework.context.annotation.Bean;
为什么会这样?
更新: 找到了问题,但还不知道如何解决。 我的项目中有多个模块。我有一个被其他模块使用的“通用”模块。在旧 gradle 版本中,公共项目的库被添加到其他模块的 compileClasspath 中,而在新版本中,它只将它们添加到 runtimeClasspath 中。
依赖项过去被声明为编译,现在 gradle 7+ 我不得不将它们更改为实现。
有什么建议吗?
在其他模块中:
dependencies {
implementation project(':common')
...
}
在公共模块中:
dependencies {
implementation spring.web
...
}
如果你使用 java-library 而不是 java plugin
,我认为你的传递性有问题plugins {
id 'java-library'
}
https://docs.gradle.org/current/userguide/java_library_plugin.html#java_library_plugin
那么你可以使用 api 而不是 compile 这可以帮助
你可以看到一个很好的解释