Meine Frage ist genau das Problem, dem dieser Benutzer von maven-shade plugin gegenübersteht:
Wie können META-INF-Dateien vom Bundle ausgeschlossen werden? >
Aber ich benutze tomcat7-maven-plugin, um eine selbstlaufende Webapp zu erstellen. Ich habe kürzlich Datenbanktreiber gewechselt, um Microsofts eigenen Treiber zu verwenden, der JDBC4 implementiert. Jetzt habe ich Probleme, es als extraDependency in mein exec-war Ziel aufzunehmen. Hier ist der relevante Teil von pom.xml
.
Das Projekt wird ordnungsgemäß erstellt, mit der Ausnahme, dass maven die Anweisung exclude
nicht befolgt, sodass die sqljdbc4-RSA-Datei im Verzeichnis META-INF enthalten ist. Das heißt, wenn ich versuche, meine exec-war-JAR-Datei auszuführen, bekomme ich diesen Fehler.
Ich habe den Code gelesen und soweit ich weiß, ist das Plugin korrekt konfiguriert, um die sqljdbc4 META-INF-Dateien auszuschließen. Hier ist der Plugin-Code für Version 2.2, den ich verwende. Es sieht so aus, als müsste das tun, was ich will. Das exec-war-Jar enthält jedoch weiterhin META-INF/MSFTSIG.RSA
EDITS
Der Code, den Sie für AbstractExecWarMojo
gepostet haben, hat einen Fehler: Die continue
in der inneren for-Schleife hat keinerlei Auswirkungen. Stattdessen sollte es in der äußeren while-Schleife fortgesetzt werden, um Archiveinträge zu überspringen, wenn ein exclude
wie folgt übereinstimmt:
Um dieses Problem in Ihrem Projekt zu beheben, können Sie das tomcat7-maven-plugin aus der Quelle auschecken / modifizieren / bauen. Wenn Sie das tun und es erfolgreich testen, wäre es großartig, wenn Sie einen Patch beisteuern würden. Ich habe bereits ein Problem dafür eingereicht.
Tags und Links maven maven-tomcat-plugin