Le plug-in Maven Shade est un outil puissant qui permet aux développeurs de combiner des artefacts, y compris leurs dépendances, en un seul , "uber jar" complet. Cela peut grandement simplifier les processus de déploiement et de distribution.
Comprendre les Uber Jars
Dans l'écosystème Maven, chaque artefact ne contient généralement que ses propres classes et ressources. Lorsqu'un projet est construit, Maven localise toutes les dépendances nécessaires (JAR, etc.) en fonction de la gestion des dépendances spécifiée.
En revanche, un uber jar consolide toutes les dépendances dans un seul et massif JAR. Cela simplifie l'exécution, car un seul grand JAR est requis pour exécuter une application au lieu de plusieurs plus petits.
Pourquoi créer des Uber Jars ?
Les Uber Jars offrent plusieurs avantages :
Déplacement (renommage) des packages
En plus de créer des uber jars, le Maven Shade Le plugin peut également renommer les packages de dépendances, appelés « relocalisation ». Cette technique peut résoudre les conflits de dépendances et améliorer la modularité.
Exemple de scénario
Considérez une situation hypothétique où :
Cela crée un conflit de dépendances : Qux ne peut pas utiliser Bar 1.0. (Dépendance de Foo) car son code nécessite les fonctionnalités de Bar 2.0.
Pour résoudre ce problème, le développeur de la bibliothèque Foo peut utiliser le plugin Shade pour déplacer son utilisation de Bar :
Ce faisant, Qux peut utiliser Bar 2.0 en toute sécurité sans entrer en conflit avec les dépendances de Foo, car Foo possède désormais sa propre copie de Bar dans un package différent.
Quand utiliser le plugin Maven Shade
Envisagez d'utiliser le plugin Maven Shade lorsque :
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3