我们使用的是hadoop-hdfs 3.2.1 jar,它对log4j 1.2.17具有传递依赖性。在我们的中央NexusIQ扫描中,它为log4j依赖项提供了9级问题。有没有办法将 log4j 覆盖到 log4j2 或任何其他解决方案。 我尝试了依赖项管理,但 log4j2 中没有工件 ID 为 log4j 的 jar 来覆盖传递依赖项。
简短的回答:不,这是不可能的。您无法在 Nexus 级别覆盖传递依赖项。您必须使用不同版本的hadoop-hdfs
,或者使用"安全"的log4j版本自行编译。
我确实设法解决了 hbase 阴影客户端 jar 的类似问题,我必须排除 log4j 1.2.17 依赖项。
为此,我这样做了。
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>...</version>
<exclusions>
<exclusion>
<artifactId>log4j</artifactId>
<groupId>log4j</groupId>
</exclusion>
</exclusions>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>1.7.25</version>
成功了。
答案来源