如何删除阴影.jar的模块信息.class警告?

2022-09-01 04:38:11

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

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

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


答案 1

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

以下是我的配置: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>*:*

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


答案 2

推荐