Ich habe auch gelegentlich gesehen, dass es "onejar" oder "one-jar" genannt wird.
Jeen Broekstra
Antworten:
357
Überist das deutsche Wort für aboveoder over(es ist tatsächlich mit dem Englischen verwandt over).
In diesem Zusammenhang ist ein Uber-JAR ein "Over-JAR", eine Ebene höher als eine einfache JAR (a) , definiert als eine, die sowohl Ihr Paket als auch alle seine Abhängigkeiten in einer einzigen JAR-Datei enthält. Es kann angenommen werden, dass der Name aus demselben Stall stammt wie Ultrageek, Superman, Hyperraum und Metadaten, die alle ähnliche Bedeutungen von "jenseits des Normalen" haben.
Der Vorteil ist , dass Sie Ihr uber-jar verteilen können und kümmern sich nicht auf allen , ob nicht Abhängigkeiten am Ziel installiert, wie Ihr uber-jar tatsächlich hat keine Abhängigkeiten.
Alle Abhängigkeiten Ihrer eigenen Sachen innerhalb des Überglases befinden sich auch in diesem Überglas. Wie alle Abhängigkeiten dieser Abhängigkeiten. Und so weiter.
(a) Ich sollte einem Java-Entwickler wahrscheinlich nicht erklären müssen, was eine JAR ist, aber ich werde sie der Vollständigkeit halber hinzufügen. Es handelt sich um ein Java-Archiv, im Grunde genommen um eine einzelne Datei, die normalerweise eine Reihe von Java-Klassendateien sowie zugehörige Metadaten und Ressourcen enthält.
Seltsam ... Ich bin Deutscher und kenne natürlich das Wort "über" und die Bedeutung. Aber warum wird es hier im Maven-Kontext verwendet? In diesem Fall bedeutet dies, dass ein oder mehrere Dinge zusammengetragen werden und über das generierte Glas zugänglich sind. Leider hat dieser Hinweis mein Maven-Problem nicht gelöst ;-)
Bjoern
7
BTW, überund overist das Ergebnis einer systematischen Vokalverschiebung in altgermanischen , die auch in diesen Wortpaaren beobachtet werden können: geben/give, leben/live, haben/have, heben/heaveund viele mehr.
Angesichts der Trauer, die ich über den Versuch hatte , Menschen zu erziehen , habe ich beschlossen, nur die Dinge zu entfernen, über die sich einige immer wieder beschweren. Ich definiere uber immer noch im Kontext der deutschen Sprache, aber die (etwas ausführliche) Geschichtsstunde ist jetzt weg :-)
paxdiablo
58
Ubars Glas ist auch bekannt als Fett jar dh Glas mit Abhängigkeiten.
Es gibt drei gängige Methoden zum Aufbau eines Überglases:
Unschattiert: Entpacken Sie alle JAR-Dateien und packen Sie sie erneut in eine einzelne JAR. Funktioniert mit Javas Standardklassenlader. Tools Maven-Assembly-Plugin
Schattiert: Wie nicht schattiert, jedoch alle Pakete aller Abhängigkeiten umbenennen (dh "Schatten") . Funktioniert mit Javas Standardklassenlader. Vermeidet einige (nicht alle) Konflikte mit Abhängigkeitsversionen. Tools Maven-Shade-Plugin
JAR von JARs: Die endgültige JAR-Datei enthält die anderen darin eingebetteten JAR-Dateien. Vermeidet Konflikte mit Abhängigkeitsversionen. Alle Ressourcendateien bleiben erhalten. Tools: Eclipse JAR File Exporter
Darüber hinaus ist es manchmal sehr interessant, ein Uber-JAR zu liefern, wenn Sie wirklich eine Software vertreiben möchten und nicht möchten, dass der Kunde Abhängigkeiten selbst herunterladen muss. Wenn ihre eigene Richtlinie die Verwendung einer Bibliothek nicht zulässt oder wenn sie einige zusätzliche Komponenten (slf4j, systemkonforme Bibliotheken, Arch Specialiez-Bibliotheken, ...) binden müssen, wird dies wahrscheinlich die Schwierigkeiten für sie erhöhen .
Eine sauberere Lösung besteht darin, ihre Bibliothek separat bereitzustellen. Das Maven-Shade-Plugin hat dafür einen vorkonfigurierten Deskriptor. Dies ist nicht komplizierter (mit Maven und seinem Plugin).
Eine wirklich gute Lösung ist schließlich die Verwendung eines OSGI-Bundles. Es gibt viele gute Tutorials dazu :)
Lesen Sie zur weiteren Konfiguration die folgenden Themen:
Ein in sich geschlossenes, ausführbares Java-Archiv. Bei WildFly Swarm-Uberjars handelt es sich um eine einzelne JAR-Datei, die Ihre Anwendung, die zur Unterstützung erforderlichen Teile von WildFly, ein internes Maven-Repository mit Abhängigkeiten sowie einen Shim zum Booten aller Elemente enthält. Sieh dir das an
Die verschiedenen Namen sind nur Möglichkeiten zum Packen von Java-Apps.
Dünn - Enthält NUR die Bits, die Sie buchstäblich in Ihren Code-Editor eingeben, und NICHTS anderes.
Dünn - Enthält alle oben genannten PLUS die direkten Abhängigkeiten der App von Ihrer App (DB-Treiber, Dienstprogrammbibliotheken usw.).
Hollow - Die Umkehrung von Thin - Enthält nur die zum Ausführen Ihrer App erforderlichen Bits, enthält jedoch NICHT die App selbst. Grundsätzlich ein vorgefertigter „App-Server“, auf dem Sie Ihre App später bereitstellen können, im gleichen Stil wie herkömmliche Java EE-App-Server, jedoch mit wichtigen Unterschieden.
Fett / Uber - Enthält das Bit Sie sich buchstäblich schreiben PLUS die direkten Abhängigkeiten Ihrer Anwendung PLUS die Bits benötigt , um Ihre App „auf seinem eigenen“ laufen.
Antworten:
Über
ist das deutsche Wort fürabove
oderover
(es ist tatsächlich mit dem Englischen verwandtover
).In diesem Zusammenhang ist ein Uber-JAR ein "Over-JAR", eine Ebene höher als eine einfache JAR (a) , definiert als eine, die sowohl Ihr Paket als auch alle seine Abhängigkeiten in einer einzigen JAR-Datei enthält. Es kann angenommen werden, dass der Name aus demselben Stall stammt wie Ultrageek, Superman, Hyperraum und Metadaten, die alle ähnliche Bedeutungen von "jenseits des Normalen" haben.
Der Vorteil ist , dass Sie Ihr uber-jar verteilen können und kümmern sich nicht auf allen , ob nicht Abhängigkeiten am Ziel installiert, wie Ihr uber-jar tatsächlich hat keine Abhängigkeiten.
Alle Abhängigkeiten Ihrer eigenen Sachen innerhalb des Überglases befinden sich auch in diesem Überglas. Wie alle Abhängigkeiten dieser Abhängigkeiten. Und so weiter.
(a) Ich sollte einem Java-Entwickler wahrscheinlich nicht erklären müssen, was eine JAR ist, aber ich werde sie der Vollständigkeit halber hinzufügen. Es handelt sich um ein Java-Archiv, im Grunde genommen um eine einzelne Datei, die normalerweise eine Reihe von Java-Klassendateien sowie zugehörige Metadaten und Ressourcen enthält.
quelle
über
undover
ist das Ergebnis einer systematischen Vokalverschiebung in altgermanischen , die auch in diesen Wortpaaren beobachtet werden können:geben/give
,leben/live
,haben/have
,heben/heave
und viele mehr.Ubars Glas ist auch bekannt als Fett jar dh Glas mit Abhängigkeiten.
Es gibt drei gängige Methoden zum Aufbau eines Überglases:
für mehr
quelle
Die Paxdiablo-Definition ist wirklich gut.
Darüber hinaus ist es manchmal sehr interessant, ein Uber-JAR zu liefern, wenn Sie wirklich eine Software vertreiben möchten und nicht möchten, dass der Kunde Abhängigkeiten selbst herunterladen muss. Wenn ihre eigene Richtlinie die Verwendung einer Bibliothek nicht zulässt oder wenn sie einige zusätzliche Komponenten (slf4j, systemkonforme Bibliotheken, Arch Specialiez-Bibliotheken, ...) binden müssen, wird dies wahrscheinlich die Schwierigkeiten für sie erhöhen .
Sie können das ausführen:
Eine sauberere Lösung besteht darin, ihre Bibliothek separat bereitzustellen. Das Maven-Shade-Plugin hat dafür einen vorkonfigurierten Deskriptor. Dies ist nicht komplizierter (mit Maven und seinem Plugin).
Eine wirklich gute Lösung ist schließlich die Verwendung eines OSGI-Bundles. Es gibt viele gute Tutorials dazu :)
Lesen Sie zur weiteren Konfiguration die folgenden Themen:
quelle
Ein in sich geschlossenes, ausführbares Java-Archiv. Bei WildFly Swarm-Uberjars handelt es sich um eine einzelne JAR-Datei, die Ihre Anwendung, die zur Unterstützung erforderlichen Teile von WildFly, ein internes Maven-Repository mit Abhängigkeiten sowie einen Shim zum Booten aller Elemente enthält. Sieh dir das an
quelle
Die verschiedenen Namen sind nur Möglichkeiten zum Packen von Java-Apps.
Dünn - Enthält NUR die Bits, die Sie buchstäblich in Ihren Code-Editor eingeben, und NICHTS anderes.
Dünn - Enthält alle oben genannten PLUS die direkten Abhängigkeiten der App von Ihrer App (DB-Treiber, Dienstprogrammbibliotheken usw.).
Hollow - Die Umkehrung von Thin - Enthält nur die zum Ausführen Ihrer App erforderlichen Bits, enthält jedoch NICHT die App selbst. Grundsätzlich ein vorgefertigter „App-Server“, auf dem Sie Ihre App später bereitstellen können, im gleichen Stil wie herkömmliche Java EE-App-Server, jedoch mit wichtigen Unterschieden.
Fett / Uber - Enthält das Bit Sie sich buchstäblich schreiben PLUS die direkten Abhängigkeiten Ihrer Anwendung PLUS die Bits benötigt , um Ihre App „auf seinem eigenen“ laufen.
Quelle: Artikel von Dzone
Neu gepostet von: https://stackoverflow.com/a/57592130/9470346
quelle