【发布时间】:2022-01-17 11:01:33
【问题描述】:
我想从我的项目中删除所有使用旧版 log4J 的直接/传递依赖项,尤其是版本 1.27.1。
我已确保我的项目的pom.xml 和lib 文件夹不包含log4J 1.27.1。
但是,每当项目构建到 .war 文件中时,我的项目中仍有一些其他库仍在使用 log4j 1.27.1,导致 log4j-1.27.1.jar 被下载到构建中以进行部署。
有什么方法可以通过阻止它下载特定的依赖项来强制 Maven 项目?例如,通过添加一些
pom.xml 文件的配置?
编辑 1:了解一种方法是在 pom.xml 文件中进行排除。但这需要我明确提及所有工件。有没有办法像我说"hey, I don't want to see log4j-1.27.1.jar downloaded in my Maven project at all, be it any artifact is depending on it"一样?
【问题讨论】:
-
参见此处记录的 Maven 依赖排除块。 maven.apache.org/guides/introduction/…
-
我曾考虑过使用排除,但我需要明确提及所有工件并一一排除?有什么方法可以在不提及所有工件的情况下排除特定依赖项?或者明确排除每个工件是唯一的方法?
-
我建议使用 maven-enforcer-plugin 来防止使用特定的库/版本 maven.apache.org/enforcer/enforcer-rules/… 或 maven.apache.org/enforcer/enforcer-rules/…
标签: java eclipse maven pom.xml war