web-dev-qa-db-fra.com

Maven: Comment inclure des fichiers jar dans Eclipse, qui ne sont pas disponibles dans le référentiel?

J'ai copié les fichiers JAR dans src\main\webapp\WEB-INF\lib.
J'utilise Eclipse. Si j'ajoute les fichiers JAR un par un à Projet-> Chemin de construction Java-> Ajouter des fichiers JAR, je réalise alors Projet-> Maven-> Mettre à jour la configuration du projet, ils sont supprimés par Maven. Et Eclipse affiche des erreurs contenant "xxx ne peut pas être résolu".

Env:
Eclipse Java EE IDE for Web Developers.
Version: Indigo Service Release 1
Build id: 20110916-0149

m2e - Maven Integration for Eclipse 1.0.100.20110804-1717

Remarque: je ne souhaite pas créer mon propre référentiel Maven. Il ne sera utilisé qu'une fois.
Comment dois-je procéder ?

11
fjjiaboming

Toutes les bibliothèques ne se trouvent pas dans un référentiel Maven public, par exemple vos propres bibliothèques ou bibliothèques propriétaires. Quoi qu’il en soit, vous pouvez d’abord rechercher dans le référentiel Maven , certains d’entre eux sont peut-être présents.

Dans le cas où ils ne sont vraiment pas là et que vous ne souhaitez pas installer Nexus ou Artifactory , vous pouvez choisir l'une des deux approches suivantes:

  • installez les fichiers jar dans le cache de votre référentiel local, inutile de créer un référentiel spécial. Voir les instructions sur mkyong .

  • une autre approche consiste à utiliser les dépendances du système, il suffit de mettre un chemin pour atteindre le fichier Jar dans le système de fichiers. C'est une approche moins recommandée, mais si vous le souhaitez, cela fonctionnera. Voici la documentation officielle .

18
stivlo

Ajoutez ceci a Systems Dependency .


Si vous souhaitez ajouter ceci (ceci utilise jquantlib comme exemple) à l'utilisation du référentiel local maven:

mvn install:install-file -Dfile=./jquantlib-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib -Dversion=0.2.4 -Dpackaging=jar

Pour ce faire, j'utilise un fichier de commandes

@echo off

cd lib

CMD /C "mvn install:install-file -Dfile=./jquantlib-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib -Dversion=0.2.4 -Dpackaging=jar"
CMD /C "mvn install:install-file -Dfile=./jquantlib-helpers-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib-helpers -Dversion=0.2.4 -Dpackaging=jar"
CMD /C "mvn install:install-file -Dfile=./jquantlib-samples-0.2.4-ubber.jar -DgroupId=org.jquantlib -DartifactId=jquantlib-ubber -Dversion=0.2.4 -Dpackaging=jar"
CMD /C "mvn install:install-file -Dfile=./jquantlib-samples-0.2.4.jar -DgroupId=org.jquantlib -DartifactId=jquantlib-samples -Dversion=0.2.4 -Dpackaging=jar"

CMD /C "mvn install:install-file -Dfile=./ta-lib-0.4.0.jar -DgroupId=com.tictactec -DartifactId=ta-lib -Dversion=0.4.0 -Dpackaging=jar"

Vous pouvez utiliser un fichier de script similaire sur d'autres systèmes.

Pour ajouter des fichiers JAR externes ne se trouvant pas dans le référentiel local, cliquez simplement sur votre dossier source principal et sélectionnez dans le menu du chemin de construction: "configurer le chemin de construction", puis sélectionnez l'onglet "Bibliothèques" et cliquez sur "ajouter des fichiers JAR externes". Ensuite, localisez le fichier JAR (ou Zip) que vous souhaitez ajouter en tant que bibliothèque et cliquez sur OK.

Félicitations, vous avez maintenant ajouté un fichier JAR (ou Zip) externe à votre chemin de génération et vous pouvez maintenant importer toutes les classes de ce fichier JAR dans votre projet sans générer d'erreur Picture How-To :) http: // hostthenpost. org/uploads/541be8420657320c74489ff8d456ad08.png

0
Nathan Meyer

Je pense que l'approche basée sur la dépendance du système ne devrait pas être utilisée à moins que vous n'ayez pas d'autre choix, c'est parce que vous perdez tout le "problème de portabilité de la construction" ici. Bien sûr, vous pouvez stocker vos pots dans votre système de contrôle de source avec les fichiers source de votre projet, mais je ne pense pas que ce soit une bonne approche non plus ... 

Utiliser seulement install: install-fichier n'est pas assez bon - cela déploierait les jars au format approprié dans votre référentiel local, mais que se passera-t-il lorsque vous passerez sur un autre ordinateur et que vous commencerez à construire votre projet là-bas? ] Vous devrez faire cela une fois de plus.

Donc, si vous ne voulez pas installer nexus/artifactory (ce qui est la meilleure solution, je crois), vous devriez probablement créer un autre référentiel (juste dans un système de fichiers sur certains de vos serveurs), et y déployer les fichiers jar ( vous pouvez utiliser mvn install: install-fichier comme suggéré ici, puis copiez simplement l’arbre entier). Vous pouvez maintenant configurer le serveur Web Apache et accéder au répertoire avec tous vos fichiers jar via http. Je ne crois pas que son approche soit meilleure que celle du lien/artificiel, mais cela peut être un peu plus facile à faire si vous êtes familier avec le serveur Web Apache. Pour que votre maven soit au courant de ce nouveau référentiel, vous 'devrez modifier le fichier% MAVEN_HOME%\conf\settings.xml

0
Mark Bramnik