Ich habe eine Java-Anwendung, die einige Abhängigkeiten hat, darunter ein anderes Projekt mit eigenen Abhängigkeiten. Wann immer ich es von Netbeans oder mit mvn exec ausführen, ist in Ordnung, aber wenn ich versuche, es zu packen, obwohl es erfolgreich gebaut wurde, bekomme ich zur Laufzeit den folgenden Fehler:
%Vor%Das Problem ist also, dass die Sesam-Rio-Parser anscheinend nicht enthalten sind, obwohl ich sie in meinem Maven-Repository sehen kann. Ich schließe alle Abhängigkeiten in das eingeschlossene Projekt ein. Ich habe auch versucht, sie auszuschließen und explizit zu meinem Hauptprojekt hinzuzufügen und es ist erneut fehlgeschlagen.
Irgendwelche Vorschläge?
mein Abhängigkeitsbaum:
%Vor%Ausgehend von Ihren Überlegungen fand ich eine Lösung für den Aufbau eines Fettzapfels meiner Anwendung einschließlich Sesam. Ich musste ein anderes Maven-Plugin verwenden, was Schatten ist und die Konfiguration für meinen Build ist wie folgt:
%Vor%Die interessantesten Teile sind:
Ich hoffe, es hilft. Prost, Riccardo
Das Problem besteht darin, dass Sie die Sesamgläser falsch verpacken. Mavens jar-with-dependencies
target entpackt Drittanbieter-Jars, um den Inhalt in ein einziges großes Projekt-Jar zu legen. Das wird nicht mit den Sesam-Bibliotheken funktionieren - Sie müssen die ursprünglichen Gläser intakt mit den META-INF/services/
dirs an Ort und Stelle haben.
Update Anstatt einen Onejar mit "jar-with-dependencies" zu erstellen, können Sie den Maven Shade-Plugin , das spezifische Einstellungen hat Optionen , um die Verzeichnisse META-INF/services
korrekt zusammenzuführen.
Tags und Links dependencies maven sesame