当前位置: 首页 > news >正文

IDEA maven加载依赖失败不展示Dependencies项

使用低版本maven时(3.6.3及以下),用IDEA非模板的方式手动新建maven工程,有时候会遇到丢失Dependencies的情况,maven模块仅展示一个Lifecycle项,很多情况下是因为主目录maven pom配置异常导致。

错误示例如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.3</version></parent><groupId>com.xxx</groupId><artifactId>xxx-xxx</artifactId><version>1.0.0</version><name>xxx-xxx-ai</name><packaging>pom</packaging><description>XXX</description><modules><module>xxx-api</module><module>xxx-xxx</module></modules><properties><maven.compiler.source>21</maven.compiler.source><maven.compiler.target>21</maven.compiler.target><java.version>21</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2023.0.1</version><type>pom</type><scope>import</scope></dependency>……其他配置</dependencyManagement>……其他配置
</project>

现象就是,当某个操作或手动操作触发工程reimport时,丢失Dependencies栏,仅展示标红部分(Plugins和Dependencies都缺失)。同时可能伴随很多类提示查找依赖类失败,大量import报红。

网上一堆解决方案,根本不通用,甚至连问题原因都解释不清楚,或者也没有解释如何定位问题引导解决办法。

这里有一个快速提示异常的办法是,升级maven插件,例如使用3.9.11替换低版本的maven 3.6.3,注意使用相同setting和本地库,规避重新下载大量依赖文件。

这时候重新reload工程,控制台就回提示你具体的问题所在。

例如这里就是因为上述主目录pom.xml中,有一个依赖缺乏版本号。

<dependencyManagement><dependencies>           <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></dependency>......</dependencies> 
</dependencyManagement>

理论上,由于继承父级依赖中的引用,所以子模块中可以直接引用这个依赖,而不需要还在<dependencyManagement>标签中定义无版本引用,这是报错的根本原因。

在<dependencyManagement>标签中的无<version>标签的dependency,都当加上版本号,或者直接移除这些无版本号定义的<dependency>,重新reload即可解决问题。如果依旧未出现Dependencies项,可能由于idea的本地.idea配置未及时自动刷新的原因,则考虑替换高版本后,reimport,然后换为低版本maven即可。

究其根本,其实是maven的pom文件配置规范,<dependencyManagement>标签中管理子模块的统一依赖版本,必须明确定义其中的各<dependency>版本号。

http://www.dtcms.com/a/293537.html

相关文章:

  • 图机器学习(18)——使用图构建文档主题分类模型
  • 使用idea 将一个git分支的部分记录合并到git另一个分支
  • 阿里云ODPS十五周年重磅升级发布:为AI而生的数据平台
  • 第七章 Pytorch构建模型详解【构建CIFAR10模型结构】
  • Cmake、VS2019、C++、openGLopenCV环境安装
  • idea部署新项目时,用自定义的maven出现的问题解决
  • charles手机端抓包 ios 安卓通用
  • 【js(5)原型与原型链】
  • 反向传播及优化器
  • 【图像翻转+图像的仿射变换】——图像预处理(OpenCV)
  • 网络--VLAN技术
  • Ruby 命令行选项详解
  • C++ std::list概念与使用案例
  • Web后端实战:登录认证(JWT令牌生成和Filter过滤器Interceptor拦截器)
  • 前端ApplePay支付-H5全流程实战指南
  • 使用Docker搭建SearXNG搜索引擎
  • AI聊天方案:vue+nodeJs+SSE
  • 变频器带动电机:全方位解析参数变化
  • MCP与企业数据集成:ERP、CRM、数据仓库的统一接入
  • 第一层nginx访问url如何透传到第二层nginx
  • OpenLayers 快速入门(九)Extent 介绍
  • Leetcode力扣解题记录--第240题(矩阵搜索)
  • 数据科学与大数据技术和统计学有什么区别?​
  • 关于针对 DT_REG 出现红色波浪线的问题(编译错误/IDE警告),以下是 精准解决方案,保持你的代码功能完全不变:
  • 【Linux-云原生-笔记】Haproxy相关
  • 基于Python(Django)+MongoDB实现的(Web)新闻采集和订阅系统
  • 模拟实现消息队列项目
  • 使用PEghost恢复系统(笔记版)
  • OpenEuler系统架构下编译redis的RPM包
  • [Mediatek] MTK openwrt-21.02 wifi 没启动问题