在开发中,有一个项目扫描到安全漏洞,要升级jackson版本
法一:
直接在pom.xml文件中导入完整的依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.13.5</version>
</dependency>
这样可以直接将原来的依赖修改。
如以上方法不行,查看maven库;打包插件是否有问题
法二:
因pom文件导入的依赖过多,先用idea中maven组件找到依赖来源。
找到一个依赖是以jar方式导入,此依赖pom文件中确实导入了jackson,这种的话,用exclusion排除掉jackson,然后在pom文件中引入新的依赖即可;也可使用dependencyManagement设置版本,但是这个设置有个前提是导入的依赖中导入的jar包没有指定版本(也有其他原因)。
以上面方式确实能修改jackson版本,但是查看编译后的classes文件,发现有其他war包还是存在着老版本的jackson。
<dependency>
<groupId>com.pefung</groupId>
<artifactId>admin-web</artifactId>
<version>1.2.1</version>
<type>war</type>
</dependency>
出现原因:有可能是因为admin-web项目是以war的方式导入,不能用exclusion排除掉老版本的jar包;或者是maven插件库的问题
解决方法:把项目源代码拉下来,升级jackson版本后重新打包,引入新的打包后的war依赖。或检查maven插件库是否有问题
有错误请指出