前言
今天遇到的一个问题,而且网上的答案很乱,几乎每人各执一词,年份还差距很远,几乎没有为我解决问题提供什么帮助,感觉蛮怪的,确实不常见,但不应该每次都靠降低版本来解决这种小类小bug,因为妥协下去项目很可能会有因为版本不支持的问题而报错,到时重新导包的成本就太大了。
言归正传,来聊这个在导入redis包时出的问题,导入文件如下:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.10.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.15.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.15.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.5.0</version>
</dependency>
过程
ai
首先我去问了ai好久,因为版本问题找不到包的情况我不太清楚,ai给我的建议无非就是重新导入试试,或者检查自己的配置写没写错,这类问题,但是我确定我写的没有问题,但是idea(2019)就显示我的包找不到,也就无法导入到maven中,没有办法使用。
官网
https://central.sonatype.com/
是这样的,我们开发人员只需要写写配置文件,包容idea的bug就行了,而编译器考虑就多了。我这个时候已经几乎把这个归类于bug了,我搜索了一个包实验。
jackson-databind
都是老包了,版本其实找不到匹配的,我们放一个较高的也行,一般都向下兼容。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.17.2</version>
</dependency>
但是,我导入这个配置文件再次package我的maven,这个版本还是报错,显示找不到。现在是bug实锤了,其实最开始写的时候我就有疑问:阿里两年前没引入的包,两年后还没有引入吗?现在看来是idea的问题了,我们手动引包来先解决问题。
解决
换到版本界面,点一下这个
然后我们选择一个需要的包就行了,这里我选的第一个,记得最后要和你的pom文件统一。
去到你的idea里面,打开项目配置界面(右上角)
这里一个个,分几次选入进来即可
可以看到已经添加完成了,我们把这些包拖入lib下,然后点击提交即可使用了。
像这样
保存退出你会发现pom还是爆红的,但是我们已经没必要管这个文件了,我们将他们注释或者删了都行,因为此时本地已经有配置文件了,回去看使用该包内容的文件,已经不报红,可以正常使用了,到此问题解决。
成功样图: