24 votes

Maven - Comment supprimer l'avertissement module-info.class pour les .jar ombrés ?

Voici donc mon problème...

Je suis en train d'empaqueter une application Spring Boot dans un jar uber en utilisant le plugin maven-shade. Simple, n'est-ce pas ? Eh bien, c'est le cas, sauf que depuis peu, j'obtiens l'avertissement suivant à la fin de la commande mvn clean package :

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

Il n'y a rien de cassé, mais je suis un perfectionniste et cela me rend fou ? Comment puis-je m'en débarrasser ? J'ai essayé beaucoup de choses, mais sans succès.

S'il vous plaît, aidez-nous :(

24voto

rococo Points 436

Comme indiqué dans un commentaire, le filtrage du fichier dans le plugin shade semble fonctionner correctement pour moi.

Voici ce que mon maven-shade-plugin ressemble à ceci :

        <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>

La ligne clé est la <exclude>module-info.class</exclude> . Le filtre exclut ce fichier chaque fois qu'il le voit, dans n'importe quel artefact ( *:* = tout artefact). (Les trois autres exclusions sont utilisées pour se débarrasser des bogues liés aux fichiers de signature dans les dépendances).

Je n'ai remarqué aucun effet secondaire indésirable et l'avertissement a disparu !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X