Kombinieren oder Zusammenführen aller Jars in einem ausführbaren Jar

Eine Art “einfache” Frage hier, aber es scheint kompliziert zu sein, so etwas mit Eclipse zu tun.

Ich habe ein “utils” -Projekt, in dem ich “Common” -Code wie XML-Parser, Logger, Mathematik-Berechnungen, Debug-Utilities und so weiter entwickelt habe.

Diese Bibliothek basiert auf mehreren anderen externen Bibliotheken (commons-lang-3.1, colt-1.2.0, jdom-2.0.4) und es handelt sich um eine nicht ausführbare JAR-Datei (dh es gibt nur keine main ()) Hilfscode, der in andere Projekte eingefügt werden soll).

Ich möchte, wenn ich die JAR-Datei meines Projekts erstelle, alle externen JARs (common-lang, colt, jdom) aus der JAR-Datei extrahieren, um sie automatisch für andere Projekte zu verwenden.

Der Grund ist, dass ich common-lang, colt und jdom nicht für alle Projekte, die auf meiner lib basieren, wieder einbeziehen soll, sondern die in meiner lib JAR-Datei gepackten (und es ist eine Möglichkeit, das zu gewährleisten) Verwenden Sie die gleiche Version dieser Bibliotheken in den Projekten auch basierend auf meiner lib)

Ich weiß, wie man das mit einer ausführbaren JAR-Datei macht . Siehe zum Beispiel: Wie erstelle ich ein Jar mit externen Bibliotheken, die in Eclipse enthalten sind?

Aber in einer nicht ausführbaren JAR-Datei:

  • Alle meine classn werden korrekt in eine korrekte Verzeichnisstruktur exportiert, basierend auf den Paketen, die ich erstellt habe (hoffentlich ;-)),
  • aber externe JAR-Dateien werden “wie besehen” exportiert. Wenn ich meine JAR-Datei in ein anderes Projekt importiere, werden diese JARs (common-lang, …) nicht angezeigt, und ich muss sie erneut importieren.

Gibt es eine einfache Möglichkeit, diese JAR-Datei mit einer Verzeichnisstruktur zu exportieren, in der auch alle externen JAR-Dateien in der generierten JAR-Datei extrahiert werden?

Grüße

Hast du JarSplice gesehen?

JarSplice führt alle Ihre jars und nativen Dateien über eine einfach zu bedienende GUI in einer einfach zu verwendenden ausführbaren JAR-Datei zusammen.

Bildbeschreibung hier eingeben