J'essaie d'ajouter une dépendance de pilote MS SQL dans mon fichier POM.xml et ce qui suit est la dépendance.
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
</dependency>
mais j'obtiens cette exception
Artefact manquant com.microsoft.sqlserver: sqljdbc4: jar: 4.0
Je ne comprends vraiment pas le problème.
la source
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4 :install-file (default-cli) on project standalone-pom: The specified file 'C:\Us ers\anthony\sqljdbc4.jar' not exists -> [Help 1]
-Dfile=C:\Users\anthony\Downloads\sqljdbc4.jar
par exemple.Microsoft a récemment ouvert son pilote jdbc .
Vous pouvez maintenant trouver le pilote sur maven central:
ou pour java 7:
la source
J'ai eu le même problème et je l'ai résolu en suivant.
* Suivant -> Remplissez le
Artifact file:
chemin des détails suivants du fichier jar que vous avez téléchargé (Ex: E: \ lib \ sqljdbc4.jar dans mon cas)Group Id:
com.microsoft.sqlserverArtifact Id:
sqljdbc4Version:
4.0Je vous remercie!
la source
La réponse ci-dessus ajoute uniquement le sqljdbc4.jar au référentiel local . En conséquence, lors de la création du fichier jar final du projet pour la distribution, sqljdbc4 sera à nouveau manquant, comme indiqué dans le commentaire de @Tony concernant l'erreur d'exécution.
Microsoft (et Oracle et d'autres fournisseurs tiers) restreignent la distribution de leurs logiciels conformément à l'ENU / EULA. Par conséquent, ces modules logiciels ne sont pas ajoutés dans les fichiers JAR produits par Maven pour la distribution. Il existe des hacks pour le contourner (comme fournir l'emplacement du fichier jar tiers au moment de l'exécution), mais en tant que développeur, vous devez faire attention à ne pas violer la licence.
Une meilleure approche pour les connecteurs / pilotes jdbc est d'utiliser jTDS , qui est compatible avec la plupart des SGBD, plus fiable, plus rapide (selon les benchmarks) et distribué sous licence GNU. Cela vous rendra la vie beaucoup plus facile à utiliser que d'essayer de marteler la cheville carrée dans le trou rond en suivant l'une des autres techniques ci-dessus.
la source
Vous pouvez également créer un référentiel de projet. C'est utile si plusieurs développeurs travaillent sur le même projet et que la bibliothèque doit être incluse dans le projet.
Tout d'abord, créez une structure de référentiel dans le répertoire lib de votre projet, puis copiez-y la bibliothèque. La bibliothèque doit avoir le format de nom suivant:
<artifactId>-<version>.jar
<your_project_dir>/lib/com/microsoft/sqlserver/<artifactId>/<version>/
Créez le fichier pom à côté du fichier de bibliothèque et mettez-y les informations suivantes:
À ce stade, vous devriez avoir cette structure de répertoires:
<your_project_dir>/lib/com/microsoft/sqlserver/sqljdbc4/4.2/sqljdbc4-4.2.jar
<your_project_dir>/lib/com/microsoft/sqlserver/sqljdbc4/4.2/sqljdbc4-4.2.pom
Accédez au fichier pom de votre projet et ajoutez un nouveau référentiel:
Enfin, ajoutez une dépendance sur la bibliothèque:
Mise à jour 4.3.2017
Il semble que la bibliothèque puisse être obtenue à partir d'un référentiel accessible au public. @voir les réponses de Nirmal et Jacek Grzelaczyk pour plus de détails.
la source
il suffit d'ajouter
la source
Si vous rencontrez un problème lors de l'inclusion de la dépendance pour 6.1.0.jre7 de @nirmals, répondez à https://stackoverflow.com/a/41149866/1570834 , dans votre pom avec commons-codec / azure-keyvault, je préfère aller avec ceci :
la source
Ce n'est pas trop dur. Je n'ai pas encore lu la licence. Cependant, j'ai prouvé que cela fonctionne. Vous pouvez copier le fichier jar sqljdbc4 sur un partage réseau ou un répertoire local. Votre build.gradle devrait ressembler à ceci:
sous le répertoire sharedir / releases, j'ai un répertoire similaire à la structure maven qui est \ sharedir \ releases \ com \ microsoft \ sqlserver \ sqljdbc4 \ 4.0 \ sqljdbc4-4.0.jar
bonne chance.
David Yen
la source
Pour un projet Maven autonome, j'installe généralement toutes les dépendances jar externes dans le référentiel du projet. Pour le pilote JDBC SQL Server, vous pouvez faire:
local-repo
dans votre projet Mavensqljdbc42.jar
dans unlocal-repo
dossierlocal-repo
dossier exécutémvn deploy:deploy-file -Dfile=sqljdbc42.jar -DartifactId=sqljdbc42 -DgroupId=com.microsoft.sqlserver -DgeneratePom=true -Dpackaging=jar -Dversion=6.0.7507.100 -Durl=file://.
pour déployer JAR dans le référentiel local (stocké avec votre code dans SCM)sqljdbc42.jar
et les fichiers téléchargés peuvent être suppriméspom.xml
et ajouter une référence au référentiel local du projet:xml <repositories> <repository> <id>parent-local-repository</id> <name>Parent Local repository</name> <layout>default</layout> <url>file://${basedir}/local-repo</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>
vous pouvez désormais exécuter votre projet partout sans aucune configuration ou installation supplémentaire.la source
Vous pouvez utiliser un autre pilote
et en xml
la source