如何删除阴影 .jar 的 module-info.class 警告?

How can I remove module-info.class warning for a shaded .jar?

我正在使用 maven-shade 插件将一个 Spring 启动应用程序打包到一个 uber jar 中。简单吧?好吧,除了最近我在 mvn clean package 末尾收到以下警告:

[WARNING] Discovered module-info.class. Shading will break its strong encapsulation.

它实际上并没有破坏任何东西,但我是一个完美主义者,这让我抓狂。我该如何摆脱它?我试过很多东西都没有成功。

过滤掉阴影插件中的文件对我来说似乎工作正常。

这是我的 maven-shade-plugin 配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.2.1</version>
    <configuration>
        <filters>
            <filter>
                <artifact>*:*</artifact>
                <excludes>
                    <exclude>module-info.class</exclude>
                    <exclude>META-INF/*.SF</exclude>
                    <exclude>META-INF/*.DSA</exclude>
                    <exclude>META-INF/*.RSA</exclude>
                </excludes>
            </filter>
        </filters>
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
        </execution>
    </executions>
</plugin>

关键行是<exclude>module-info.class</exclude>。过滤器在任何工件(*:* = 任何工件)中看到它时都会排除该文件。 (另外三个excludes我用它来去除依赖中签名文件的bug)

我没有注意到这样做有任何不良副作用,警告现在消失了!