Abhängigkeiten sind nicht enthalten

8

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%     
user3732870 30.06.2014, 07:29
quelle

2 Antworten

10

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:

  • mainClass-Element: um das Haupt
  • anzugeben
  • ServicesResourceTransformer: der Kern unseres Problems mit Sesam, das ist das META-INF / services / dir. Dieser Transformator hilft bei der Zusammenführung der Dienste von META-INF (wie in beschrieben) Ссылка )
  • filters: um das Glas zu unterzeichnen (weitere Details auf: Ссылка )

Ich hoffe, es hilft. Prost,    Riccardo

    
riccardo.tasso 05.12.2014, 13:33
quelle
3

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.

    
Jeen Broekstra 30.06.2014 13:09
quelle

Tags und Links