Comment obtenir les dépendances d'exécution de mon projet copiées dans le target/lib
dossier?
Comme c'est le cas actuellement, après que mvn clean install
le target
dossier ne contienne que le pot de mon projet, mais aucune des dépendances d'exécution.
Réponses:
Cela fonctionne pour moi:
la source
excludeScope
option ( maven.apache.org/plugins/maven-dependency-plugin/… ).<excludeScope>test</excludeScope>
va à l'intérieur duconfiguration
nœud.La meilleure approche dépend de ce que vous voulez faire:
la source
Fonctionne pour moi avec le répertoire des dépendances créé dans le dossier cible. J'aime ça!
la source
Jetez un œil au plug - in de dépendance Maven , en particulier à l' objectif dependency: copy-dependencies . Jetez un œil à l'exemple sous le titre The dependency: copy-dependencies mojo . Définissez la propriété de configuration outputDirectory sur $ {basedir} / target / lib (je crois que vous devrez tester).
J'espère que cela t'aides.
la source
Une solution simple et élégante pour le cas où l'on a besoin de copier les dépendances dans un répertoire cible sans utiliser d'autres phases de maven (j'ai trouvé cela très utile lorsque l'on travaille avec Vaadin).
Exemple complet de pom:
Exécutez ensuite
mvn process-sources
Les dépendances du fichier jar se trouvent dans
/target/dependency
la source
Si vous voulez le faire de façon occasionnelle (et donc ne voulez pas changer votre POM), essayez cette ligne de commande:
Si vous omettez le dernier argument , les dépendances sont placées dans
target/dependencies
.la source
mvn dependency:copy-dependencies -DoutputDirectory=./lib
Essayez quelque chose comme ceci:
la source
maven clean install
, alors vous trouverezlib
entarget
install
phase parprocess-resources
afin que les dépendances soient copiées avant labuild
fin du butTout ce dont vous avez besoin est l'extrait de code suivant dans pom.xml
build/plugins
:Ce qui précède s'exécutera dans la
package
phase lorsque vous exécutezEt les dépendances seront copiées dans le répertoire de sortie spécifié dans l'extrait de code, c'est-
lib
à- dire dans ce cas.Si vous ne souhaitez le faire qu'occasionnellement, aucune modification de pom.xml n'est requise. Exécutez simplement ce qui suit:
Pour remplacer l'emplacement par défaut, qui est
${project.build.directory}/dependencies
, ajoutez une propriété système nomméeoutputDirectory
, c.-à-d.la source
supposant
voici ce qui a fonctionné pour moi:
la source
Si vous souhaitez fournir un ensemble de votre jar d'application, ainsi que toutes ses dépendances et certains scripts pour appeler la MainClass, regardez le plugin appassembler-maven .
La configuration suivante générera des scripts pour Windows et Linux pour lancer l'application (avec un chemin généré faisant référence à tous les pots de dépendance, téléchargez toutes les dépendances (dans un dossier lib sous target / appassembler). Le plugin d'assemblage peut ensuite être utilisé pour empaqueter l'ensemble répertoire appassembler vers un zip qui est installé / déployé avec le pot dans le référentiel.
Le descripteur d'assembly (dans src / main / assembly) pour empaqueter le direcotry sous forme de zip serait:
la source
Si vous faites de votre projet un maven de type guerre ou oreille copiera les dépendances.
la source
Vous pouvez utiliser le plugin Shade pour créer un pot uber dans lequel vous pouvez regrouper toutes vos dépendances tierces.
la source
Juste pour expliquer brièvement ce qui a déjà été dit. Je voulais créer un fichier JAR exécutable qui comprenait mes dépendances avec mon code. Cela a fonctionné pour moi:
(1) Dans le pom, sous <build> <plugins>, j'ai inclus:
(2) Exécution de l'assembly de compilation mvn: l'assembly a produit le fichier my-project-0.1-SNAPSHOT-jar-with-dependencies.jar souhaité dans le répertoire cible du projet.
(3) J'ai exécuté le JAR avec java -jar my-project-0.1-SNAPSHOT-jar-with-dependencies.jar
la source
C'est une solution lourde pour intégrer de fortes dépendances, mais le plugin d'assemblage de Maven fait l'affaire pour moi.
La réponse de @ Rich Seller devrait fonctionner, mais pour les cas plus simples, vous ne devriez avoir besoin que de cet extrait du guide d'utilisation :
la source
Si vous rencontrez des problèmes liés à des dépendances n'apparaissant pas dans le fichier WEB-INF / lib lors de l'exécution sur un serveur Tomcat dans Eclipse, jetez un œil à ceci:
ClassNotFoundException DispatcherServlet lors du lancement de Tomcat (les dépendances Maven ne sont pas copiées dans wtpwebapps)
Vous deviez simplement ajouter les dépendances Maven dans Propriétés du projet> Assemblage de déploiement.
la source