我需要从shade插件中排除log4j工件以避免log4j漏洞,但是artifactSet下的exclude标记似乎不起作用。有什么建议可以解决这个问题吗?
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
~~
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<excludes>
<exclude>*:log4j-core:jar</exclude>
</excludes>
</artifactSet>
~~~
我不断收到以下错误:无法在项目上执行目标org.apache.maven.plugins:maven-shade-plugin:3. 2. 4:shade(默认):目标org.apache.maven.插件的执行默认值:maven-shade-plugin:3.2.4:着色失败:插件org.apache.maven.plugins:maven-shade-plugin:3.2.4或它的一个依赖项无法解析:无法找到工件org.apache.logging.log4j:log4j-core:jar:2.13.0
1条答案
按热度按时间dzjeubhm1#
我遇到了同样的问题,最后通过
maven-shade-plugin
配置解决了。在你的情况下,你想排除log4j-core
,你的过滤器配置必须放在artifactSet
之外,如下所示。1.查找
log4j-core
类路径前缀,例如org/slf4j/
;1.将该类路径前缀放入过滤器排除规则中,运行cmd
mvn package
1.使用
vim your-target.jar
检查排除是否成功,您会发现org/slf4j
已消失。1.有关更多排除信息,请参见https://maven.apache.org/plugins/maven-shade-plugin/examples/includes-excludes.html