我正在嘗試從我的 Maven 專案中洗掉所有易受攻擊的 log4j 依賴項。
我在我的 pom 中使用log4j 2.16依賴項,并在其他依賴項中為 log4j 和 sl4j 添加了排除項。
盡管如此,每當我運行 maven 包目標時,它都會下載log4j 1.2.12 jar。
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ Test ---
Downloading: https://repo.maven.apache.org/maven2/log4j/log4j/1.2.12/log4j-1.2.12.pom
Downloaded: https://repo.maven.apache.org/maven2/log4j/log4j/1.2.12/log4j-1.2.12.pom (145 B at 0.1 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/log4j/log4j/1.2.12/log4j-1.2.12.jar
Downloaded: https://repo.maven.apache.org/maven2/log4j/log4j/1.2.12/log4j-1.2.12.jar (350 KB at 101.6 KB/sec)
我什至運行了mvn dependency:tree命令,它只顯示log4j 2.16。
它下載log4j 1.2.12 jar的原因可能是什么?
uj5u.com熱心網友回復:
Maven plugins,即在構建專案時執行實際作業的庫也有依賴項:log4j-1.2.12是您的專案使用的maven-compiler-plugin-3.1的(傳遞性)依賴項。
因此,事實上,Maven的下載log4j并沒有意味著它會與你的應用程式打包。
備注: 3.1maven-compiler-plugin版本是一個相當老的版本。此版本在默認生命周期系結中指定,出于兼容性原因,永遠不會升級。不過你應該在你的 POM 檔案中指定一個更新的版本,例如:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
</plugins>
</pluginManagement>
</build>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/398199.html
標籤:行家 日志4j pom.xml 日志4j2 cve-2021-44228
