J'ai un problème avec Maven. J'ai inclus une dépendance en tant que telle dans mon pom.xml: J'utilise Intellij comme EDI, et je ne reçois aucune avertissement de compilation là-bas ou quoi que ce soit. J'utilise la ligne de commande pour exécuter les commandes Maven et je peux exécuter i obtenir cette erreur: p> clairement, Maven ne trouve pas ce chemin. J'ai essayé de supprimer le .m2, la reconstruction, et surtout tout ce que j'ai trouvé sur Stackoverflow, mais je ne peux pas trouver la question, ni obtenir la visibilité dans la question. Remarque, dans mon Intellij je peux voir la dépendance dans les bibliothèques externes. P> J'ai également essayé d'utiliser l'ombre pour copier les dépendances de la bocal: p> suivi de laquelle i Reran MVN Clean Install Package, puis ma commande de construction. Pas de chance. P> J'ai également essayé le plug-in Maven Assembly. Devinez quoi, pas de chance! P> J'ai confirmé que les dépendances ne sont même pas intégrées. P> Merci! P> P> mvn installer code> compile code> package code> tout sans ennuis. P> < p> Cependant, lorsque j'essaie d'exécuter le pot comme tel: p>
3 Réponses :
Maven fonctionne bien dans ce cas. Cependant, vous semblez manquer le point de dépendance. P>
Lorsque vous définissez une dépendance Maven l'utilise pendant la compilation (d'où aucune erreur d'Intellij et lorsque vous exécutez Mais cela ne signifie pas que la dépendance est placée dans le pot. P>
Il existe des types d'applications d'emballage plus compliqués dans lesquels cela fonctionne en effet de ce type (les bocaux dépendants sont inclus dans l'artefact) par exemple l'application de démarrage à ressort, les archives Web (guerre), etc. Mais puisque vous compilez un pot régulier, il n'inclut que les classes de votre module et n'inclut pas les classes de la communication de la communication de la CSV dans ce cas. P>
Donc, afin de pouvoir exécuter cette application, vous devez choisir l'une des: p>
Mettez le pot des communes-CSV (ainsi que d'autres dépendances que vous pourriez avoir) dans le chemin de la classe: MVN Installez code>) p>
Java -ClassPath
Merci. Pourriez-vous donner un exemple de comment j'utiliserais le plugin de l'ombre pour accomplir cela? J'ai essayé d'utiliser ceci: MKKYONG.COM / Maven / Création-A-A-A-FLA-JAR-File-Maven-Shade-Plugin et avec les changements requis, cela n'a pas fonctionné pour moi.
J'ai aussi essayé ceci: Stackoverflow.com/questions/7502204/... avec la même erreur.
Essayez ceci: Stackoverflow.com/Questtions/36093084 / ... afin de vérifier que cela fonctionne que vous pouvez ouvrir le fichier jar avec quelque chose comme WinRar (et voir ce qui se trouve à l'intérieur, vous devriez pouvoir voir des packages pour la communication des Commons-CSV et notre propre module)
Les informations de chemin de construction Maven ne sont pas stockées par le compilateur dans le fichier JAR cible et aucune bonne solution unique n'a augmenté au fil des ans. C'est un point de douleur en Java.
HI Le problème est que lorsque le pot est créé créé, les dépendances en cours de téléchargement ne sont pas attachées au bocal exécutable, c'est pourquoi une erreur s'affiche que nous pouvons ajouter la section ci-dessous dans la balise de construction pour obtenir les dépendances attachées à Le pot exécutable et ensuite vous pouvez exécuter le pot avec la commande Java -Jar P> Maven-Assembly-Plugin Paquet unique ... WOW.DXDXDATAGENERATOR.App Jar-avec dépendances ->
Comme mentionné dans les autres réponses, vous devez orienter vos dépendances dans votre jar exécutable (A.K.A. Uber-JAR). Vous mentionnez que vous avez essayé de deux manières: en utilisant l'assemblage maven avec un bocal descriptorref avec dépendances et le plug-in Maven Shade. P>
Première remarque globale: la configuration du plug-in Maven peut être définie dans un bloc Lorsque vous utilisez le bocal Le plug-in de l'ombre offre plus d'options que le plug-in Maven Assembly. Toutefois, dans le code que vous avez collé, vous n'avez pas lié à l'exécution du plug-in Maven Shade à la phase d'emballage du cycle de vie de Maven. Si vous exécutez un package avec dépendances code> Descriptorref dans le plug-in Maven Assembly, deux fichiers JAR seront créés dans votre dossier cible / CODE>: Stride-1.0-Snapshot. JAR et Stride-1.0-Snapshot-avec dépendances.jar. Vous devez utiliser le -with-dépendances.jar code>, donc exécuter Java -CP cible / stride-1.0-instantané-with-dépendances.jar com.myapp.maven.app code> p>
MVN code>, vous ne verrez pas le plug-in Maven Shade dans dans le cadre des étapes de construction qui maven. Si vous avez l'air plus étroitement à guide MKKYONGS < / a>, vous verrez que vous devez inclure un package
Construisez un pot avec des dépendances ou ajoutez les dépendances à votre point de classe en exécutant le pot.
Pouvez-vous élaborer comment je construis un pot avec des dépendances différentes de ce que je fais?
Lisez sur le plug-in Maven Shade.