Ich versuche, eine MS SQL-Treiberabhängigkeit in meine POM.xml-Datei einzufügen. Die folgende Abhängigkeit ist vorhanden.
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
</dependency>
aber ich bekomme diese Ausnahme
Fehlendes Artefakt com.microsoft.sqlserver: sqljdbc4: jar: 4.0
Ich verstehe das Problem wirklich nicht.
quelle
[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
.Microsoft hat kürzlich seinen JDBC-Treiber als Open-Source-Version bereitgestellt .
Sie finden den Treiber jetzt auf maven central:
oder für Java 7:
quelle
Ich hatte das ähnliche Problem und löste es, indem ich Folgendes tat.
* Weiter -> Geben Sie den folgenden
Artifact file:
Detailpfad der heruntergeladenen JAR ein (Beispiel: E: \ lib \ sqljdbc4.jar in meinem Fall)Group Id:
com.microsoft.sqlserverArtifact Id:
sqljdbc4Version:
4.0Danke dir!
quelle
Die obige Antwort fügt nur die Datei sqljdbc4.jar zum lokalen Repository hinzu. Infolgedessen fehlt beim Erstellen des endgültigen Projekt-JARs für die Verteilung erneut sqljdbc4, wie im Kommentar von @Tony zum Laufzeitfehler angegeben.
Microsoft (und Oracle und andere Drittanbieter) beschränken die Verbreitung ihrer Software gemäß ENU / EULA. Daher werden diese Softwaremodule nicht in von Maven hergestellten Gläsern zur Verteilung hinzugefügt. Es gibt Hacks, um das Problem zu umgehen (z. B. den Speicherort der JAR-Datei eines Drittanbieters zur Laufzeit anzugeben), aber als Entwickler müssen Sie vorsichtig sein, wenn Sie gegen die Lizenzierung verstoßen.
Ein besserer Ansatz für JDBC-Konnektoren / -Treiber ist die Verwendung von jTDS , das mit den meisten DBMS kompatibel, zuverlässiger, schneller (gemäß Benchmarks) und unter GNU-Lizenz verteilt ist. Es wird Ihr Leben viel einfacher machen, dies zu verwenden, als zu versuchen, den quadratischen Stift nach einer der anderen oben genannten Techniken in das runde Loch zu schlagen.
quelle
Sie können auch ein Projekt-Repository erstellen. Es ist nützlich, wenn mehr Entwickler an demselben Projekt arbeiten und die Bibliothek in das Projekt aufgenommen werden muss.
Erstellen Sie zunächst eine Repository-Struktur im lib-Verzeichnis Ihres Projekts und kopieren Sie dann die Bibliothek in dieses Verzeichnis. Die Bibliothek muss das folgende Namensformat haben:
<artifactId>-<version>.jar
<your_project_dir>/lib/com/microsoft/sqlserver/<artifactId>/<version>/
Erstellen Sie eine POM-Datei neben der Bibliotheksdatei und fügen Sie die folgenden Informationen ein:
Zu diesem Zeitpunkt sollten Sie diese Verzeichnisstruktur haben:
<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
Gehen Sie zur POM-Datei Ihres Projekts und fügen Sie ein neues Repository hinzu:
Fügen Sie abschließend eine Abhängigkeit von der Bibliothek hinzu:
Update 4.3.2017
Es scheint, dass die Bibliothek aus einem öffentlich zugänglichen Repository bezogen werden kann. Weitere Informationen finden Sie in den Antworten von nirmal und Jacek Grzelaczyk.
quelle
einfach hinzufügen
quelle
Wenn Sie Probleme beim Einfügen der Abhängigkeit für 6.1.0.jre7 von @nirmals haben, antworten Sie in https://stackoverflow.com/a/41149866/1570834 , in Ihrem Pom mit Commons-Codec / Azure-Keyvault ::
quelle
Es ist nicht zu schwer. Ich habe die Lizenz noch nicht gelesen. Ich habe jedoch bewiesen, dass dies funktioniert. Sie können die JAR-Datei sqljdbc4 in eine Netzwerkfreigabe oder ein lokales Verzeichnis kopieren. Ihr build.gradle sollte folgendermaßen aussehen:
Unter dem Verzeichnis sharedir / release habe ich ein Verzeichnis ähnlich der Maven-Struktur: \ sharedir \ release \ com \ microsoft \ sqlserver \ sqljdbc4 \ 4.0 \ sqljdbc4-4.0.jar
Viel Glück.
David Yen
quelle
Für ein in sich geschlossenes Maven-Projekt installiere ich normalerweise alle externen JAR-Abhängigkeiten im Projekt-Repository. Für den SQL Server JDBC-Treiber können Sie Folgendes tun:
local-repo
in Ihrem Maven-Projektsqljdbc42.jar
inlocal-repo
Ordnerlocal-repo
Ordner ausführenmvn deploy:deploy-file -Dfile=sqljdbc42.jar -DartifactId=sqljdbc42 -DgroupId=com.microsoft.sqlserver -DgeneratePom=true -Dpackaging=jar -Dversion=6.0.7507.100 -Durl=file://.
, um JAR im lokalen Repository bereitzustellen (zusammen mit Ihrem Code in SCM gespeichert)sqljdbc42.jar
und heruntergeladene Dateien können gelöscht werdenpom.xml
und fügen Sie einen Verweis auf das lokale Repository des Projekts hinzu: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>
Jetzt können Sie Ihr Projekt überall ohne zusätzliche Konfigurationen oder Installationen ausführen.quelle
Sie können einen anderen Treiber verwenden
und in xml
quelle