前言

博主之前在从Git上拉取了一个SpringBoot项目,pom.xml中直接出现了报错,Missing artifact net.sf.json-lib:json-lib:jar:2.4
缺少jar包 (net.sf.json-lib:json-lib:jar:2.4)

根据提示得知,这个问题主要原因是Maven本地库里jar包问题,百度了一圈,全是讲解引入jar包的问题
如图,这是报错的地方

注意:有些coder的pom.xml中没有这个dependency配置。如果没有就直接配置下面正确的就ok了!

那么这个报错的问题出在那里呢?

你可以进入maven本地库,通过图一指定的路径net/sf/json-lib/json-lib/2.4查看(如下图所示)

本地库路径是自定义的,具体jar包位置,需要去自己的本地库找
例如:D:\MyApp\apache-maven-3.6.0\MavenWarehouse\net\sf\json-lib\json-lib\2.4 Maven



仔细的你可以观察到,其实文件的名字是叫json-lib-2.4-jdk15.jar。重点是后面的jdk15


其实这里有很多人说是JDK的版本问题,说什么这个jar包是jdk1.5的。
具体是不是其实我也不清楚,但是我用的是JDK1.8,当然JDK1.7的是如此操作。就暂且当这个原因是jar包名字的问题吧!!

解决方案1(失败)

言归正传,既然之前的配置错了,那就在pom.xml中就多配置一项(如下图所示,代码如下)

1
2
3
4
5
6
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>

配置完成后,重新更新下(右击项目名 - Maven - update project),然后这里就不会报错了。
是不是很神奇!!
虽然这个方案能解决大多数人的麻烦,但是对于修改配置后,pom.xml的头标签后仍然报错的coder来说是很头疼的!、

下面是我修改后遇到的问题:


配置成功并更新后,发现头标签还是报错,报错原因还是老样子。
然后又去百度!!结果一无所获!!!!
既然百度不到解决的正确方法,那就自己动手寻找问题解决。
第一个尝试的方法(失败!!!):

解决方案2(成功)

既然已经导入jar包,也按照上面讲的配置好了,还出错!当时想的可能是项目的问题了。
重新从git上拉取了一遍,还是报错。那就不是项目的问题了。。。
第二个尝试的方法(成功!!!):

推翻文章最起初的解决方案,修改本地库的jar包名字(如下图所示)



修改完jar包名字后,就需要重新配置pom.xml了,这里修改很简单,
只需要删掉<classifier>jdk15</classifier>就可以了了(如下图所示)



修改完以后,再update下,pom.xml就不报错了,问题解决了!!(update的方法上面有讲),
这篇文章是根据自己的实际情况来解决的,或许对有些人不管用。

总结

  • 遇到xml报错,首先应该先去看一下具体是哪里报错,看看是否能找到指定的路径/文件,有针对性的找错误!
  • 千万不要一上来就认定导入的项目有问题,就删除它。
  • 删除项目解决问题是不推荐的(虽然有时候很有效)。