log4j Maven着色插件不排除工件

ymdaylpp  于 2022-11-06  发布在  Maven
关注(0)|答案(1)|浏览(204)

我需要从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

dzjeubhm

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

<filter>
           <artifact>*:*</artifact>
           <excludes>
             <exclude>org/slf4j/**</exclude>
           </excludes>
         </filter>

相关问题