1

Die Maven shade plugin verbindet die Java-Klassen Ihres Projekts zusammen mit seinen Abhängigkeiten in einer einzelnen JAR-Datei. Wenn es Überschneidungen gibt (z. B. enthalten zwei Abhängigkeiten eine Klasse mit dem gleichen qualifizierten Namen), gibt es eine Warnung aus und verwendet (wenn ich es richtig verstehe) die letzte Version dieser Klasse, auf die es trifft.Kann das Maven-Schatten-Plugin den Build nicht ausführen, wenn doppelte Klassen vorhanden sind?

Für mich scheint das ein bisschen zu locker; Eine solche Überlappung könnte leicht zur Laufzeit oder anderen Problemen zur Laufzeit führen, z. wenn die überlappenden Klassen unterschiedliche Bytecodes enthalten.

Ist es möglich, das Schatten-Plugin so zu konfigurieren, dass der Build bei Überlappungen fehlschlägt, anstatt nur eine Warnung auszugeben? Dies ist besonders nützlich auf einem CI-Server, auf dem niemand die Protokolldateien überwacht, um zu sehen, ob Warnungen vorhanden sind.

Antwort

2

Es scheint keine solche Option im Plugin zu geben. Ich habe logged an issue dies anfordern (update: und auch einen Patch eingereicht, den jeder bei Bedarf selbst anwenden kann).

Verwandte Themen