背景:
我在 eclipse 里面创建的 maven 工程,经常在 pom.xml 中出现这种 Unknown 的错误,以前的做法只需要在 Problems 里面把它删掉就可以了,但是最近发现删掉好像不好用了,找到了最终的解决方法。
解决方式一:
在 pom.xml 中添加你当前电脑的 maven 版本号 (mvn -version) ,然后 maven update,重新打开 pom.xml 就没有红叉了。
<properties>
<maven-jar-plugin.version>3.1.0</maven-jar-plugin.version>
</properties>
解决方式二:
若上面的方法解决不了问题,还有可能是在 eclipse 中使用 springboot 插件生成 maven 项目时出现的问题,使用 springboot 插件生成项目时 springboot 版本不能超过 2.1.5.RELEASE。所以将 2.1.5.RELEASE 改成 2.1.4.RELEASE 即可。
根本原因分析:
要进行根本原因分析,就需要知道在 pom.xml 中,到底是哪个依赖报的这个 Unknow 问题,经过定位发现,是下面的这个依赖报的问题。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
</parent>
我们按住 ctrl 点进去这个依赖,出现下面的界面:
我们再点 ctrl 点这个依赖,进入模块查看,然后查找 maven-jar-plugin ,如下图所示:
进入到 maven 的中央仓库,查看是否有这个 3.1.2 的版本,我们发现,根本没有这个依赖,如下所示:
看到这里基本上也就明白该如何处理了。只需要重新定义一个 maven-jar-plugin 的版本即可,需要主意的是重新定义的时候一定要比项目中定义的版本低。如下图所示:
<properties>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
</properties>
最终的原因就是我们没有指定 maven 插件版本,默认的 maven 插件版本是不存在的。