发现身边的开发同学在替换jar的时候遇到如下问题: 0、一定要替换吗? 1、不确定要替换那些包 2、替换后旧版jar仍存在 1、2问题答案如下: 1、简单粗暴替换首先我们聊下问题0,一定要替换吗?org.apache.logging.log4j 组下面的所有包 2、因为maven依赖传的导致新引入的报又依赖了旧版本log4j包。
不一定需要替换,虽然项目中引用了jar,如:
1、没有开启JNDI(在spring.properties里添加spring.jndi.ignore=true 可以禁用) 2、或者禁止应用对外访问互联网。 3、移除了JndiLookup类文件,(操作命令: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class)
以上都是无害的。但是堵不如疏,没准啥时候就出幺蛾子了,有精力最好还是升级下jar包,花不了多少时间。
idea下jar升级操作方法:1、直接查看当前项目jar包(见下图左侧)版本等比较直观。
2、进入pom文件,查看jar包依赖视图(比较方便看依赖关系和操作)
jar包依赖视图进入方式:右键选择下图红框处。
查看log4j系列版本后,如发现不符合安全漏洞要求的jar包, 进入jar包依赖视图选定该包,然后右键exclude(从当前父依赖下屏蔽此jar包,会自动更新pom文件), 然后重新引入(直接在pom文件下添加对应的最新版本jar包)。
注意:
log4j 下的jar包之间也会存在依赖关系,需要再次屏蔽,解决屏蔽后仍存在的问题,如下:
依次对所有包进行如上操作,直到替换所有旧版本log4j系列jar包。



