AKTUALIZACJA
Firma Microsoft udostępnia teraz ten artefakt w Maven Central. Więcej informacji można znaleźć w odpowiedzi @ nirmal: https://stackoverflow.com/a/41149866/1570834
ORYGINALNA ODPOWIEDŹ
Problem polega na tym, że Maven nie może znaleźć tego artefaktu w żadnym ze skonfigurowanych repozytoriów mavena .
Niestety firma Microsoft nie udostępnia tego artefaktu za pośrednictwem żadnego repozytorium Maven. Musisz pobrać plik jar z witryny firmy Microsoft , a następnie ręcznie zainstalować go w lokalnym repozytorium maven.
Możesz to zrobić za pomocą następującego polecenia maven:
mvn install:install-file -Dfile=sqljdbc4.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar
Następnie następnym razem, gdy uruchomisz maven na swoim POM, znajdzie on artefakt.
[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
.Firma Microsoft niedawno otworzyła swój sterownik jdbc .
Możesz teraz znaleźć sterownik w Maven Central:
lub dla java 7:
źródło
Miałem podobny problem i rozwiązałem go, wykonując następujące czynności.
* Dalej -> Wypełnij następujące dane
Artifact file:
ścieżkę słoika po pobraniu (Ex: E: \ lib \ sqljdbc4.jar w moim przypadku)Group Id:
com.microsoft.sqlserverArtifact Id:
sqljdbc4Version:
4.0Dziękuję Ci!
źródło
Powyższa odpowiedź dodaje tylko plik sqljdbc4.jar do lokalnego repozytorium. W rezultacie, podczas tworzenia ostatecznego jar projektu do dystrybucji, sqljdbc4 ponownie będzie brakować, jak wskazał w komentarzu @Tony dotyczącym błędu wykonania.
Microsoft (oraz Oracle i inni dostawcy zewnętrzni) ograniczają dystrybucję swojego oprogramowania zgodnie z ENU / EULA. Dlatego te moduły oprogramowania nie są dodawane do słoików wyprodukowanych przez Maven do dystrybucji. Są sposoby na obejście tego problemu (na przykład podanie lokalizacji pliku jar innej firmy w czasie wykonywania), ale jako programista musisz uważać, aby nie naruszyć warunków licencji.
Lepszym podejściem do złączy / sterowników jdbc jest użycie jTDS , który jest kompatybilny z większością DBMS, bardziej niezawodny, szybszy (zgodnie z wzorcami) i rozpowszechniany na licencji GNU. Ułatwi ci to znacznie życie niż próba wbicia kwadratowego kołka w okrągły otwór zgodnie z którąkolwiek z powyższych technik.
źródło
Możesz także utworzyć repozytorium projektu. Jest to przydatne, jeśli więcej programistów pracuje nad tym samym projektem, a biblioteka musi być uwzględniona w projekcie.
Najpierw utwórz strukturę repozytorium w katalogu lib projektu, a następnie skopiuj do niej bibliotekę. Biblioteka musi mieć następujący format nazwy:
<artifactId>-<version>.jar
<your_project_dir>/lib/com/microsoft/sqlserver/<artifactId>/<version>/
Utwórz plik pom obok pliku biblioteki i umieść w nim następujące informacje:
W tym momencie powinieneś mieć taką strukturę katalogów:
<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
Przejdź do pliku pom swojego projektu i dodaj nowe repozytorium:
Na koniec dodaj zależność od biblioteki:
Aktualizacja 4.3.2017
Wygląda na to, że bibliotekę można pobrać z publicznie dostępnego repozytorium. @zobacz odpowiedzi nirmala i Jacka Grzelaczyka po więcej szczegółów.
źródło
poprostu dodaj
źródło
Jeśli masz jakiś problem podczas dołączania zależności dla 6.1.0.jre7 z @nirmals, odpowiedz na https://stackoverflow.com/a/41149866/1570834 , w swoim pom z commons-codec / azure-keyvault Wolę iść z tym :
źródło
Nie jest to zbyt trudne. Nie przeczytałem jeszcze licencji. Jednak udowodniłem, że to działa. Plik jar sqljdbc4 można skopiować do udziału sieciowego lub katalogu lokalnego. Twój build.gradle powinien wyglądać tak:
w katalogu sharedir / release mam katalog podobny do struktury maven, czyli \ sharedir \ release \ com \ microsoft \ sqlserver \ sqljdbc4 \ 4.0 \ sqljdbc4-4.0.jar
powodzenia.
David Yen
źródło
W przypadku projektu Maven zawierającego się samodzielnie zwykle instaluję wszystkie zależności zewnętrznych jar w repozytorium projektu. W przypadku sterownika JDBC programu SQL Server można:
local-repo
w swoim projekcie Mavensqljdbc42.jar
dolocal-repo
folderulocal-repo
folderze uruchom,mvn deploy:deploy-file -Dfile=sqljdbc42.jar -DartifactId=sqljdbc42 -DgroupId=com.microsoft.sqlserver -DgeneratePom=true -Dpackaging=jar -Dversion=6.0.7507.100 -Durl=file://.
aby wdrożyć plik JAR do lokalnego repozytorium (przechowywany wraz z kodem w SCM)sqljdbc42.jar
a pobrane pliki można usunąćpom.xml
i dodaj odniesienie do lokalnego repozytorium projektu: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>
teraz możesz uruchomić swój projekt w dowolnym miejscu bez żadnych dodatkowych konfiguracji lub instalacji.źródło
Możesz użyć innego sterownika
i xml
źródło