百摩网
当前位置: 首页 生活百科

idea找不到主类(悲剧IDEA突然找不到类了)

时间:2023-06-15 作者: 小编 阅读量: 1 栏目名: 生活百科

那今天这篇的文章,总结一下IDEA运行maven项目找不到相关依赖报错的问题原因以及解决办法。maven依赖下载失败,这就会导致IDEA找不到相关依赖。IDEA本地缓存异常最后一种情况,跟IDEA有比较大关系。IDEA之所以快,那是因为IDEA打开新的工程的时候,它会构建项目索引以及生成相关缓存。那有时候,如果IDEA缓存被破坏,那就有可能导致IDEA无法识别maven依赖,从而导致IDEA无法找到某些类。

我们本地使用 IDEA 运行 maven 项目的时候,有时候运气不好,就会遇到某些 maven 依赖无法正常找到、导入。这就会导致 IDEA 构建项目的时候爆出一堆醒目的红色 Error。

那最近新拉取一个项目源码,本地运行项目,又碰到这种情况。按照以前的解决经验,捣鼓了一下,发现没办法解决。于是研究了一下午,终于解决这个问题。

吐槽一下,刚开始一度以为是这个项目有问题,找了一个同事,发现他的电脑是却可以正常运行这个项目。

那今天这篇的文章,总结一下 IDEA 运行 maven 项目找不到相关依赖报错的问题原因以及解决办法。

网络问题,无法下载 maven 依赖

Maven 默认的中央仓库地址为 http://search.maven.org/#browse,那这是一个外网的地址。

而我们国内访问外网地址,网络速度不仅慢,网络质量还差。这就导致了maven 依赖下载速度过慢,有时候下载还可能会失败。

maven 依赖下载失败,这就会导致 IDEA 找不到相关依赖。

那这个问题解决办法也比较简单,我们可以通过设置镜像(mirrors)地址解决。

打开我们本地 maven 配置文件,默认地址如下:${user.home}/.m2/settings.xml,然后找到 mirrors节点,在这下面添加以下配置:

<mirrors><mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror></mirrors>

lastUpdated 文件导致依赖无法正常导入

当你更新镜像地址之后,有可能还会碰到 maven 依赖无法导入,那恭喜你碰到第二个问题了。

maven 依赖下载的时候,如果碰到网络较差,依赖下载失败,maven 本地将会生成 lastUpdated 为后缀的文件。

那正常的 maven 依赖如下

lastUpdated 为后缀的文件作用如下:

只要 lastUpdated 文件存在,maven 依赖将不会重新下载,所以做简单的方法就是,删除 lastUpdated 文件,重新刷新下载即可。

这里提供一键删除 lastUpdated 文件脚本(macos)

# 这里写你的仓库路径REPOSITORY_PATH=~/.m2/repositoryecho 正在搜索...find $REPOSITORY_PATH -name "*lastUpdated*" | xargs rm -frecho 搜索完

windows 脚本如下:

# windows脚本@echo offrem create by NettQunrem 这里写你的仓库路径set REPOSITORY_PATH=D:\Java\maven-repository\maven-aliyun\repositoryrem 正在搜索...for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do (echo %%idel /s /q "%%i")rem 搜索完毕pause

maven 依赖冲突,引用错误

前两个问题主要跟本地网络有比较大的关系,那这个问题,主要是因为 maven 特性导致。

那 maven 有一个依赖传递的特性,如果 A 依赖 B,而 B 依赖 C,那么 C 这个依赖就会通过 B 间接传递给 A。

那如果有多个间接依赖存在,但是彼此版本却不一样,这就会导致依赖冲突

如上所示,如果 A 应用 使用了 E2.0 新增某些类或者方法,那这个时候由于依赖冲突,A 实际上间接依赖的是 E1.0,这就导致 IDEA 编译的时候找不到 E 新增这些类或方法。

那这个问题解决办法,也比较简单,有冲突,我们就直接解决冲突就可以了。

我们可以在 IDEA 中安装一个 Maven Helper 插件,然后打开 pom 文件,点击 Dependency Analyzer 选项,在这里面选中 Conflicts 按钮,就可以看到当前所有冲突的依赖包。

选中其中一个依赖包,就可以在右侧看到所有冲突依赖包的版本。选中其中一个版本,右键选中 Exclude 即可。

上面的办法我们通过排除其他间接依赖从而解决问题。那下面还有一种解决办法,将间接依赖转化为直接依赖。

我们可以把间接依赖直接写在项目 pom 文件里,这样 maven 将会直接使用这个依赖,其他间接依赖将会失效。

maven 间接依赖异常

这个问题,就比较诡异,这也是文章刚开头提到那个问题。

项目中依赖关系如下所示。

A 应用依赖 B ,那 B 是一个开源项目,但是公司内部对 B 进行一些修改。修改之后, B 依赖 C ,所以 A 中使用 C 依赖某些类。

那由于我本地仓库已经下载了 B 开源版本,那当我本地拉取 A 应用源码,那依赖关系就变成了 图中虚线关系。

IDEA 缺失了 C 依赖,这就导致项目编译错误,无法找到 C 中一些类。

那这个问题解决办法,就是在本地仓库找到 B 依赖,然后删除拉取即可。

解决办法比较简单,关键我们需要找到中间这个依赖。

IDEA 本地缓存异常

最后一种情况,跟 IDEA 有比较大关系。

IDEA 之所以快,那是因为 IDEA 打开新的工程的时候,它会构建项目索引以及生成相关缓存。

那有时候,如果 IDEA 缓存被破坏,那就有可能导致 IDEA 无法识别 maven 依赖, 从而导致 IDEA 无法找到某些类。

这种情况我们需要删除原先的缓存以及索引,等待 IDEA 重新构建缓存以及索引即可。

在 IDEA 中点击 File/Invalidate Cached 即可。

最后

如果你如果碰到新的情况,以上几种解决办法都没办法解决,那么只能使用终极解决办法。

重启大法,重启 IDEA,重启电脑

    推荐阅读
  • 篮球场上十大打人事件(广东小学生拍篮球惊扰到狗子)

    日前,在广东佛山,两名小学生拍篮球惊扰到狗子,监控下一幕让网友鼓掌的视频在网上走红,引起了网友们的热议和关注。只见红色衣服的男孩一个没拿稳,球“滚了”出去,砸到路边的电动车发出警报声,也差点砸到路边卧着的一只小狗身上,两名男孩小心翼翼的将篮球又捡了回来,并向卧着的小狗深深鞠了一躬,同伴也鞠躬并说了声对不起,这一幕让网友们纷纷为其鼓掌,称赞这两名小孩太有素质了。

  • 菠萝蜜产量排名(食用兼备市场前景好)

    菠萝蜜属桑科桂木属常绿乔木,是集水果、木本粮及珍贵用材于一体的热带树种。经6年多试种,植株生长正常,产量高且稳定性好。定植后3个月内要打开排水口,防止暴雨积水造成根腐病致幼苗死亡。四季菠萝蜜以培养伞形的树冠为佳,树冠高度控制在4~5米。保持树枝均匀分布,保护内膛免受暴晒。四季菠萝蜜的主要病虫害有天牛、刺蛾、吹绵介壳虫及叶斑病、煤烟病、花果软腐病等。采收四季菠萝蜜果实发育成熟约需4个月。

  • 形容初秋的诗句古诗词(描写初秋的诗句有哪些)

    落日心犹壮,秋风病欲疏——杜甫《江汉》,下面我们就来聊聊关于形容初秋的诗句古诗词?——杜甫《江汉》三眠未歇,乍到秋时节。——纳兰性德《淡黄柳·咏柳》小楼昨夜又东风,故国不堪回首月明中。——纳兰性德《木兰花慢·立秋夜雨送梁汾南行》自古逢秋悲寂寥,我言秋日胜春朝。——刘禹锡《秋词》秋阴时晴渐向暝,变一庭凄冷。——周邦彦《关河令·秋阴时晴渐向暝》秋风起兮白云飞,草木黄落兮雁南归。

  • 晶怎么组词(晶怎么组词造句)

    晶怎么组词重结晶造句:结果伏立康唑的总收率为25.3%,远远高于文献报道的收率(4%),制得的伏立康唑经过重结晶得到色谱纯度>99%的成品。可以用来制造白色颜料、珐琅、釉子和化学试剂,在造纸和橡胶工业中用做填料,开采石油时把重晶石加在泥浆中可以防止井喷。

  • 人生一世草木一秋和光同尘(人生大事同悲万古尘)

    隐喻和追问《人生大事》不仅有着生活气息,更直击人心的,是其对死亡颇具锐度的思考,这一点通过隐喻设置和追问来达成。三哥和小文的人物关系,尤为值得品读。而该片也在为疲态尽显的市场,提供一个发扬温暖现实主义的样本。即使诚信经营,专业过硬,殡葬师仍然会被人误会。在中国的传统文化和民族心理中,家占有极其重要的地位。即使三哥和小文已经情同父女,但囿于收养制度,二人也不能成为法律意义上的亲人。

  • 2019年重庆网约车新政(重庆网约车管理暂行办法)

    道路运输管理机构应当自受理之日起20日内作出许可或者不予许可的决定。经营期满需要延期经营的,网约车平台公司应当在经营期限届满前3个月内向原许可机关提出申请。网约车平台公司应当自网络正式联通之日起30日内,到市公安机关指定的受理机关办理备案手续。

  • 听诊器最初是为了什么(听诊器最初是为了不用紧贴着患者身体)

    听诊器的雏形在1816年由法国医生雷奈克发明。1816年,雷奈克为一名年轻女患者检查心脏病,在当时,医生都会一耳靠近患者胸部,以听取心音。雷奈克后来根据卷纸筒听诊的实验,制作出空心的木头听诊器原型:一头接着麦克风,另一头接听筒,并命名为听诊器。由于听诊器的发明,使得雷奈克能诊断出许多不同的胸腔疾病,他也被后人尊为“胸腔医学之父”。

  • 描写神采的句子摘抄(神采的句子都有哪些描写)

    一会儿,抽到我这组了,我的同桌被老师抽到了。他背得不熟,老师说下午还要抽查他。可是直到下课,老师也没有抽查我。又来了个大回转;“嗖”蹿到猴山上去了。那些家伙还作起了自己的“热身运动”。有的竟当起了“运动员”,学起了“举重”,大钳子一张一合。它们的运动“细胞”可真够活跃的。一位神采奕奕的胖老头听见狗叫,从屋里出来。他年纪六十上下,一头浅褐色的头发保养得很好,只是胡子已经花白。这就是勃洛耶尔教授。

  • 耳石症是不是很容易复发(耳石症为什么容易复发)

    耳石症为什么容易复发在很多耳石症患者的认知中,耳石症即耳石脱落移位,只要将耳石“放回原处”就可以了,如此简单的病,应该“一治就好”介于这种认知,部分耳石症反复发作的患者,甚至对医生产生了质疑然而事情真的如此简单吗?山东省。

  • 马卡龙色系是什么颜色(马卡龙色系简介)

    马卡龙色系是什么颜色?接下来我们就一起去了解一下吧!马卡龙色系是什么颜色马卡龙各种颜色是粉色、黄色、绿色、橘色、蓝色是主要色调,有些粉嫩色商家说也是马卡龙色,例如粉红、浅黄、粉蓝、粉绿等。马卡龙色的床单,蓝色的麻布料窗帘,就让整个房间都梦幻了一点。马卡龙色床头柜和衣柜非常适合放在孩子或者年轻的男孩女孩房间,一下子提亮了房间的色彩,清爽梦幻又青春。