设计好 英文网站,深圳网站商城建设,企业管理专业,章丘网站开发一、问题描述 在使用 Maven 管理项目依赖时#xff0c;遇到了一个棘手的问题。具体表现为#xff1a;在 pom.xml 文件中导入了所需的依赖#xff0c;并且在 IDE 中导入语句没有显示为红色#xff08;表示 IDE 没有提示依赖缺失#xff09;#xff0c;但是在实际使用这些依…一、问题描述 在使用 Maven 管理项目依赖时遇到了一个棘手的问题。具体表现为在 pom.xml 文件中导入了所需的依赖并且在 IDE 中导入语句没有显示为红色表示 IDE 没有提示依赖缺失但是在实际使用这些依赖的代码中却显示该依赖不存在。尝试了多种常规的解决办法例如使用 mvn clean install 命令重新构建项目、在 IDE 中刷新 Maven 项目如在 IntelliJ IDEA 中点击 Reload All Maven Projects 按钮在 Eclipse 中右键点击项目选择 Maven - Update Project检查依赖的版本号和导入语句是否正确等都未能解决问题。
二、最终解决办法
经过一番探索发现当 pom.xml 中使用了 dependencyManagement 元素管理依赖时出现了问题。虽然不会爆红且源中存在所需的依赖但本地仓库中无法正确找到该依赖。最终采取的解决办法是将最外围的 dependencyManagement/dependencyManagement 标签去掉然后刷新项目。这样做之后问题得到解决依赖能够正常找到和下载。 build后没有报Cannot resolve symbol baomidou Maven 的错误了。之前我的这个依赖在dependencyManagement 中。
三、dependencyManagement 和 dependencies 的区别
dependencies 元素
功能用于声明项目直接依赖的库。这些依赖是项目运行或构建所必需的会被添加到项目的类路径中。特点 直接在 dependencies 中添加的依赖会自动被引入到项目中并且可以指定依赖的范围如 compile、test、runtime 等。当多个子模块继承父模块时父模块 dependencies 中的依赖会自动传递给子模块子模块可以直接使用。示例
dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdversion2.7.6/version/dependency
/dependenciesdependencyManagement 元素
功能主要用于集中管理依赖的版本不会直接引入依赖而是在子模块或其他依赖该项目的项目中当需要引入依赖时根据 dependencyManagement 中指定的版本信息进行统一管理避免版本冲突。特点 通常在父模块中使用通过 dependencyManagement 声明依赖的版本信息但不会自动添加这些依赖到项目中。子模块或其他项目可以通过添加 dependency 元素仅指定 groupId 和 artifactId来引入这些依赖会自动使用 dependencyManagement 中定义的版本这样可以确保多个模块使用相同的依赖版本。
dependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion2.7.6/versiontypepom/typescopeimport/scope/dependency/dependencies
/dependencyManagement