maven项目pom文件以war包方式导入依赖,修改依赖中某个子依赖版本失败

在开发中,有一个项目扫描到安全漏洞,要升级jackson版本
法一:
直接在pom.xml文件中导入完整的依赖

        <dependency>
            <groupId>com.alibabagroupId>
            <artifactId>fastjsonartifactId>
            <version>2.13.5version>
        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插件库是否有问题

有错误请指出

你可能感兴趣的:(java,maven,java)