揭秘奇葩环境问题:IDEA与Maven版本兼容性解析

1.问题描述

最近在实现通过Java爬虫获取网页源码,然后紧接着将源码转换为图片上传到OSS服务器,其中探索了很多办法,但是在实现过程中遇到一个奇葩问题,就是我无论下载任何Maven依赖,都无法正常下载,简直是理了个大谱,经过网上多方面查阅资料后终得知原因。

我遇到的具体报错信息如下所示:

1) Error injecting constructor, java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultModelValidator: method 'void <init>()' not foundat org.jetbrains.idea.maven.server.embedder.CustomModelValidator.<init>(Unknown Source)while locating org.jetbrains.idea.maven.server.embedder.CustomModelValidatorat ClassRealm[maven.ext, parent: ClassRealm[plexus.core, parent: null]] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)while locating org.apache.maven.model.validation.ModelValidator annotated with @com.google.inject.name.Named(value="ide")1 errorrole: org.apache.maven.model.validation.ModelValidatorroleHint: ideat org.jetbrains.idea.maven.server.Maven3XServerEmbedder.getComponent(Maven3XServerEmbedder.java:489)at org.jetbrains.idea.maven.server.Maven3XServerEmbedder.customizeComponents(Maven3XServerEmbedder.java:578)at org.jetbrains.idea.maven.server.Maven3XServerEmbedder.customize(Maven3XServerEmbedder.java:546)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:566)at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359)at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)at java.base/java.security.AccessController.doPrivileged(Native Method)at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562)at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796)at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677)at java.base/java.security.AccessController.doPrivileged(Native Method)at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676)at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)at java.base/java.lang.Thread.run(Thread.java:834)at java.rmi/sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:303)at java.rmi/sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:279)at java.rmi/sun.rmi.server.UnicastRef.invoke(UnicastRef.java:164)at java.rmi/java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:217)at java.rmi/java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:162)at com.sun.proxy.$Proxy151.customize(Unknown Source)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:566)at com.intellij.execution.rmi.RemoteUtil.invokeRemote(RemoteUtil.java:155)at com.intellij.execution.rmi.RemoteUtil.access$400(RemoteUtil.java:25)at com.intellij.execution.rmi.RemoteUtil$1.lambda$invoke$0(RemoteUtil.java:139)at com.intellij.openapi.util.ClassLoaderUtil.computeWithClassLoader(ClassLoaderUtil.java:31)at com.intellij.execution.rmi.RemoteUtil.executeWithClassLoader(RemoteUtil.java:207)at com.intellij.execution.rmi.RemoteUtil$1.invoke(RemoteUtil.java:139)at com.sun.proxy.$Proxy151.customize(Unknown Source)at org.jetbrains.idea.maven.server.MavenEmbedderWrapper.doCustomize(MavenEmbedderWrapper.java:92)at org.jetbrains.idea.maven.server.MavenEmbedderWrapper.onWrappeeCreated(MavenEmbedderWrapper.java:45)at org.jetbrains.idea.maven.server.RemoteObjectWrapper.getOrCreateWrappee(RemoteObjectWrapper.java:42)at org.jetbrains.idea.maven.server.MavenEmbedderWrapper.doCustomize(MavenEmbedderWrapper.java:92)at org.jetbrains.idea.maven.server.MavenEmbedderWrapper.lambda$customizeForResolve$1(MavenEmbedderWrapper.java:65)at org.jetbrains.idea.maven.server.RemoteObjectWrapper.perform(RemoteObjectWrapper.java:76)at org.jetbrains.idea.maven.server.MavenEmbedderWrapper.customizeForResolve(MavenEmbedderWrapper.java:64)at org.jetbrains.idea.maven.server.MavenEmbedderWrapper.customizeForResolve(MavenEmbedderWrapper.java:58)at org.jetbrains.idea.maven.project.MavenProjectResolver.executeWithEmbedder(MavenProjectResolver.java:285)at org.jetbrains.idea.maven.project.MavenProjectResolver.resolveFolders(MavenProjectResolver.java:216)at org.jetbrains.idea.maven.project.MavenProjectsProcessorFoldersResolvingTask.perform(MavenProjectsProcessorFoldersResolvingTask.java:40)at org.jetbrains.idea.maven.project.MavenProjectsProcessor.doProcessPendingTasks(MavenProjectsProcessor.java:141)at org.jetbrains.idea.maven.project.MavenProjectsProcessor.access$000(MavenProjectsProcessor.java:35)at org.jetbrains.idea.maven.project.MavenProjectsProcessor$1.run(MavenProjectsProcessor.java:110)at org.jetbrains.idea.maven.utils.MavenUtil.lambda$runInBackground$5(MavenUtil.java:488)at com.intellij.util.RunnableCallable.call(RunnableCallable.java:20)at com.intellij.util.RunnableCallable.call(RunnableCallable.java:11)at com.intellij.openapi.application.impl.ApplicationImpl$1.call(ApplicationImpl.java:255)at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.RuntimeException: org.codehaus.plexus.component.repository.exception.ComponentLook

2.本地环境介绍

1.IDEA版本:2021.2.2
2.Maven版本:3.8.8

3.探索方法

但是按照我的理解,这个错误似乎是由于依赖冲突或版本不匹配引起的。

因此我可能的解决方案包括:

  1. 更新依赖版本:尝试将 Maven 相关的依赖更新到兼容的版本,以解决方法缺失的问题。尝试更新 Maven 或相关库的版本,看看是否解决了问题。

  2. 排除冲突依赖:检查的 Maven 依赖树,确保没有不必要的依赖或者版本冲突。可以通过 Maven 的 dependency:tree 命令来查看依赖树,并且通过 <exclusions> 标签排除不需要的依赖。

  3. 清理 Maven 本地仓库:有时本地 Maven 仓库中的某些文件可能损坏或不完整。可以尝试删除 Maven 本地仓库中与该依赖相关的文件,然后再次构建项目,让 Maven 重新下载依赖。

  4. 查看 IDE 配置:这个错误似乎与 IDE(可能是 IntelliJ IDEA)相关,可能是 IDE 中的某些配置导致的问题。可以尝试更新 IDE,或者查看 IDE 的相关配置是否正确。

按照上述方式探索了很久,结果总是无济于事!

4.解决方法

最终我得知发生问题的原因就是IDEA无法兼容高版本的Maven,因此报错异常!
简单来说就是,IDEA只能兼容版本比其发布时间晚的Maven环境,具体可以通过maven官网查询每一maven版本的发布时间,具体如下图所示:
在这里插入图片描述
由图中可知,我的3.8.8版本的maven发布时间是2023-03-08,时间上晚于2021年2月,因此我当前的IDEA无法兼容如此高版本的maven环境。所以,当我切换了低版本的Maven环境之后就可以正常下载maven依赖并进行后续的开发工作了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/701102.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

八年前端开发之路中遇到的一些实用技巧分享——代码思路及通用场景

在开发中比较有用的代码思路 1. 链式编程2. 高阶函数应用-(添加数据并提供删除方法)3. 利用Promise链切入&#xff08;延迟执行&#xff09;4. 通过中间层来解决问题&#xff08;装饰者模式&#xff09;5. 单例模式 1. 链式编程 所谓链式编程即是函数调用后返回对象本身 let …

自动化中遇到的问题归纳总结

1、动态元素定位不到 解决方法&#xff1a;尽量使用固定元素定位&#xff0c;如没有固定元素&#xff0c;则采用绝对路径进行定位&#xff0c;因为元素路径是唯一且不变的 2、自动化脚本执行速度较慢 尽量使用css方法定位元素&#xff0c;使用等待时&#xff0c;少用sleep方…

中国目前比较有影响力的人物颜廷利:物质与无知通音

既然是在中国优秀传统文化之根-汉语当中&#xff0c;汉字‘物质’二字跟‘无知’通音&#xff0c;因此&#xff0c;面对当前金钱肆虐、物欲横流的现实生活&#xff0c;当人类众生把‘物质’&#xff08;无知&#xff09;生活看的太真、太重时&#xff0c;那么&#xff0c;这就很…

浅谈现代消息队列与云存储

一、前言 1970 年代末&#xff0c;消息系统用于管理多主机的打印作业&#xff0c;这种削峰解耦的能力逐渐被标准化为“点对点模型”和稍复杂的“发布订阅模型”&#xff0c;实现了数据处理的分布式协同。随着时代的发展&#xff0c;Kafka&#xff0c;Amazon SQS&#xff0c;Ro…

2024年3月 电子学会 青少年等级考试机器人理论真题五级

202403 青少年等级考试机器人理论真题五级 第 1 题 下图程序运行后&#xff0c;串口监视器显示的结果是&#xff1f;&#xff08; &#xff09; A&#xff1a;0 B&#xff1a;1 C&#xff1a;3 D&#xff1a;4 第 2 题 下列选项中&#xff0c;关于74HC595移位寄存器芯片的…

旧手机-基于Termux配置服务器(不用拿去换钢盆了)

Hi&#xff0c;大家好&#xff0c;我是抢老婆酸奶的小肥仔。 大家用手机这么多年了&#xff0c;手上或多或少都有一两个被替换下来的旧手机&#xff0c;也不用拿去换啥钢盆了&#xff0c;使用Termux可以将旧手机改造成一个服务器。 不多说&#xff0c;直接开干。 1、安装app…

JAVA毕业设计141—基于Java+Springboot+Vue的物业管理系统(源代码+数据库)

毕设所有选题&#xff1a; https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootVue的物业管理系统(源代码数据库)141 一、系统介绍 本项目前后端分离&#xff0c;分为管理员、员工、用户三种角色(角色权限可自行分配) 1、用户&#xff1a; …

相机模型,坐标变换,畸变

小孔成像模型 墨子就记录了小孔成像是倒立的。这从几何光学的角度是很好理解的&#xff1a;光沿直线传播&#xff0c;上方和下方的光线交叉&#xff0c;导致在成像平面位置互换。 小孔的大小有什么影响&#xff1f; 小孔越大&#xff0c;进光量变大了&#xff0c;但是成像平…

研究生学习---找工作

规划 研一~研二上学期完成小论文&#xff0c;实习&#xff0c;秋招 竞赛&#xff1a;kaggle&#xff1f; 面试题一般简单且为原题&#xff0c;笔试题目很难&#xff0c;不会出原题 项目 找工作软件

Github项目管理——仓库概述(一)

个人名片&#xff1a; &#x1f393;作者简介&#xff1a;嵌入式领域优质创作者&#x1f310;个人主页&#xff1a;妄北y &#x1f4de;个人QQ&#xff1a;2061314755 &#x1f48c;个人邮箱&#xff1a;[mailto:2061314755qq.com] &#x1f4f1;个人微信&#xff1a;Vir2025WB…

随身wifi能不能买?怎么买不踩坑?随身wifi哪个品牌最好用?热销榜第一的格行随身wifi真的好用吗?对比其他品牌有何优势?

你是否遇到过这些问题&#xff1a;出差办公酒店信号差&#xff0c;领导信息接收不及时&#xff01;外出旅游&#xff0c;手机流量不够用&#xff01;高速导航&#xff0c;信号差导航延迟等等...所以更多的人选择随身wifi&#xff0c;但是市面那么多品牌&#xff0c;随身wifi到底…

AWS基础之Region/AZ/DC概念

从云厂商提供的服务物理地域上来划分&#xff0c;范围从大到小依次是Region-Available Zone-Data Center。 Region(区域)&#xff1a;区域与区域之间的距离大概是几百公里或者几千公里。&#xff08;可以理解为&#xff1a;中国和美国在不同的区域&#xff09; Available Zon…