Idea Cannot resolve plugin org.apache.maven.plugins 问题分析与解决
一、背景信息
为了应用较为成熟的开源配置项目,故而从业界中找到了比较不错的 Apollo 项目。
Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
通过 Gitee 获取 SSH 地址,进而将其克隆至本地,基于自身项目的特点,便于更进一步的开发和使用这套成熟的 Apollo 开源配置项目。
二、问题描述
使用 Idea 第一次打开 Apollo 项目,经过开发环境自动处理过程之后,Build 工作区的 Sync 报出了不能解决插件问题。
截图如下:
三、问题分析
1)假设原因
根据 Idea 报出的错误,可以直接判断,maven-deploy-plugin 包缺失了,导致出现这个问题。
因此,应该去 Maven 的存储仓库里查看 maven-deploy-plugin 包是否真的缺失了。
2)验证假设
通过查看以下目录:
发现包是存在的,如图所示:
为了解决问题,上网也搜索了相关的信息。发现,大家也都是查看对应目录下是否存在 maven-deploy-plugin 的相关版本的包来排查问题的。
然而,事实胜于雄辩,包确实存在。
这下就困惑了。
3)尝试新的方式
为了找到问题原因,尝试删除项目文件,而后重新克隆,重新第一次打开项目,看看是否还爆出这个错误。
这是一次胡乱的尝试,毕竟,也不知道问题的原因到底在哪了。所以,就是死马当活医了。
然而,结果却是没有报出 maven-deploy-plugin 缺包的问题,这下就让人更加困惑了。
4)查看仓库下其他包的更新
从以上环节判断,肯定不是 maven-deploy-plugin 包的问题,否则,相同错误是可以重复报出来的。
然而,删除代码之后,再克隆导入打开,却没有报出错误。
由此判断,问题可能来源于其他的包,因此,进而查看仓库下还有其他的什么包更新了。
从图中可以看出,文件夹按照修改时间倒序排列,因此,更新的包在于标记的最上头五个文件夹。
由此,再去查看一下这些文件夹下又更新了哪些文件。
图中将五个文件夹下的所有文件截图合在了一起,便于观察比较。
可以看出,都有相应版本的更新。
5)删除更新包
为了验证这些包是否导致最开始的那个 maven-deploy-plugin 错误,故而将以上环节中包含的五个文件夹下更新的文件全部删除,而后又将 Apollo 项目文件删除,再重新克隆导入打开,看看是否报出明确的那个错误。
这里就不截图了。
经过验证之后,maven-deploy-plugin 包的错误果断报了出来。
这就说明,是以上环节的五个文件夹下的包,真正导致了 maven-deploy-plugin 包的错误出现。
6)分析结论
Java 项目中,会出现一些错误提示信息不正确的情况,这很误导开发人员,因此,需要注意。
在该项目中,很像就是这个错误提示误导了错误的查找。
由于第一启动,相应包自动更新之后,提出错误信息。到了重新打开之后,就没有再次出现了。这就是包自动更新的结果。
四、解决方案
经过以上分析过程,我们得出了原因所在,就是包缺失了,但是提示信息不正确。
实际上,我们也不需要如此费劲的分析,因为 Idea 有包更新操作,如果出现 Cannot resolve plugin 这类问题,可以打开 Maven 窗口,点击重新导入按钮即可。
未点击按钮前的截图如下:
点击按钮后的截图如下:
可见,面对包缺失的相关问题,可以简单粗暴的采取直接重新导入包即可,应该是可以解决大部分的相似问题。
当然,可能这招不好使了,我们再去具体问题具体分析。
最后,感谢阅读,如有不妥之处,还请指出。
评论