Ce qui est un uber pot?
je suis en train de lire de la documentation Maven et je suis tombé sur le nom "uber-jar".
que signifie Uber-jar et quelles sont ses caractéristiques/avantages?
4 réponses
Über
est le mot allemand pour above
ou over
, comme dans une ligne d'un hymne national précédent: Deutschland, Deutschland, über alles
(Allemagne, Allemagne avant tout).
donc, dans ce contexte, un uber-jar est un" over-jar", un niveau supérieur d'un simple" jar", défini comme un qui contient à la fois votre paquet et toutes ses dépendances dans un seul fichier JAR. On peut penser que le nom vient de la même écurie que ultrageek, superman, hyperespace, et les métadonnées, qui ont toutes des significations similaires de "Au-delà de la normale".
l'avantage est que vous pouvez distribuer votre Uber-jar et ne vous souciez pas du tout si oui ou non les dépendances sont installées à la destination, comme votre uber-jar en fait a pas de dépendances.
toutes les dépendances de vos propres affaires dans l'uber-jar sont aussi dans cet uber-jar. Comme le sont toutes les dépendances de ces dépendance. Et ainsi de suite.
Paxdiablo définition est vraiment bon.
en outre, s'il vous plaît considérer la livraison d'un Uber-jar est parfois assez intéressant, si vous voulez vraiment distribuer un logiciel et ne voulez pas que le client ait à télécharger des dépendances par eux-mêmes. Comme un retrait, si leur propre politique ne permet pas l'utilisation d'une certaine bibliothèque, ou s'ils doivent lier certains composants supplémentaires (slf4j, libs conforme au système, libs arch specialisez, ...) cela augmentera probablement les difficultés pour ils.
Vous pouvez effectuer que :
- en gros avec Maven-assembly-plugin
- un peu plus loin, avec maven-ombre-plugin
une solution plus propre est de fournir leur bibliothèque séparément; maven-shade-plugin a un descripteur préconfiguré pour cela. Ce n'est pas plus compliqué à faire (avec maven et son plugin).
enfin, une très bonne solution est D'utiliser un paquet OSGI. Il y a beaucoup de bons tutoriels sur :)
pour plus de configuration, s'il vous plaît lire ces sujets:
ubar jar est également connu comme gras bocal c'est à dire pot avec des dépendances.
Il existe trois méthodes communes pour construire un bocal uber:
- Unshaded: déballer tous les fichiers JAR, puis les reconditionner dans un seul JAR. Fonctionne avec le chargeur de classe par défaut de Java. Outils Maven-assembly-plugin
- ombré: identique à non ombré, mais renommer (i.e., "shade") tous les paquets de toutes les dépendances. Fonctionne avec le chargeur de classe par défaut de Java. Évite certains (pas tous) conflits de versions de dépendances. Des outils maven-ombre-plugin
- JAR of JARs: le fichier JAR final contient les autres fichiers JAR inclus. Évite les conflits de versions de dépendances. Tous les fichiers de ressources sont préservées. Outils: Eclipse Fichier JAR Exportateur
autonome, d'un exécutable Java archive. Dans le cas des uberjars des essaims de Mouches sauvages, il s'agit d'une seule espèce .fichier jar contenant votre application, les parties de WildFly nécessaires pour le soutenir, un dépôt interne Maven des dépendances, plus un shim pour bootstrap tout. voir ce