ОБНОВИТЬ
Microsoft теперь предоставляет этот артефакт в maven central. См. Ответ @ nirmal для получения дополнительной информации: https://stackoverflow.com/a/41149866/1570834
ОРИГИНАЛЬНЫЙ ОТВЕТ
Проблема в том, что Maven не может найти этот артефакт ни в одном из настроенных репозиториев maven .
К сожалению, Microsoft не делает этот артефакт доступным через какой-либо репозиторий maven. Вам необходимо загрузить jar с веб-сайта Microsoft , а затем вручную установить его в локальный репозиторий maven.
Вы можете сделать это с помощью следующей команды maven:
mvn install:install-file -Dfile=sqljdbc4.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar
Затем в следующий раз, когда вы запустите maven на своем POM, он найдет артефакт.
[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 недавно открыла исходный код своего драйвера jdbc .
Теперь вы можете найти драйвер в maven central:
или для java 7:
источник
У меня была аналогичная проблема, и я решил ее, выполнив следующие действия.
* Далее -> Заполните следующие данные:
Artifact file:
путь к загруженной вами банке (например, E: \ lib \ sqljdbc4.jar в моем случае)Group Id:
com.microsoft.sqlserverArtifact Id:
sqljdbc4Version:
4.0Спасибо!
источник
Приведенный выше ответ добавляет только sqljdbc4.jar в локальный репозиторий. В результате при создании финального файла jar проекта для распространения sqljdbc4 снова будет отсутствовать, как было указано в комментарии @Tony относительно ошибки времени выполнения.
Microsoft (а также Oracle и другие сторонние поставщики) ограничивают распространение своего программного обеспечения в соответствии с ENU / EULA. Поэтому эти программные модули не добавляются в jar-файлы, созданные Maven для распространения. Существуют приемы, позволяющие обойти это (например, указание местоположения стороннего jar-файла во время выполнения), но как разработчик вы должны быть осторожны с нарушением лицензирования.
Лучшим подходом для разъемов / драйверов jdbc является использование jTDS , который совместим с большинством СУБД, более надежен, быстрее (согласно тестам) и распространяется под лицензией GNU. Это сделает вашу жизнь намного проще, чем пытаться вбить квадратный колышек в круглое отверстие, используя любой из других методов, описанных выше.
источник
Вы также можете создать репозиторий проекта. Это полезно, если над одним проектом работает больше разработчиков, и библиотека должна быть включена в проект.
Сначала создайте структуру репозитория в каталоге lib вашего проекта, а затем скопируйте в него библиотеку. Библиотека должна иметь следующий формат имени:
<artifactId>-<version>.jar
<your_project_dir>/lib/com/microsoft/sqlserver/<artifactId>/<version>/
Создайте файл pom рядом с файлом библиотеки и поместите в него следующую информацию:
На этом этапе у вас должна быть такая структура каталогов:
<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
Перейдите в pom файл вашего проекта и добавьте новый репозиторий:
Наконец, добавьте зависимость от библиотеки:
Обновление 4.3.2017
Похоже, что библиотеку можно получить из общедоступного репозитория. Подробнее см. ответы Нирмала и Яцека Гржелачика.
источник
просто добавь
источник
Если у вас возникла проблема при включении зависимости для 6.1.0.jre7 из ответа @nirmals в https://stackoverflow.com/a/41149866/1570834 , в вашем pom с commons-codec / azure-keyvault я предпочитаю использовать это :
источник
Это не так уж сложно. Лицензию еще не читал. Однако я доказал, что это работает. Вы можете скопировать файл jar sqljdbc4 в общий сетевой ресурс или в локальный каталог. Ваш build.gradle должен выглядеть так:
в каталоге sharedir / Release у меня есть каталог, похожий на структуру maven: \ sharedir \ Release \ com \ microsoft \ sqlserver \ sqljdbc4 \ 4.0 \ sqljdbc4-4.0.jar
удачи.
Дэвид Йен
источник
Для автономного проекта Maven я обычно устанавливаю все внешние зависимости jar в репозиторий проекта. Для драйвера JDBC SQL Server вы можете:
local-repo
в своем проекте Mavensqljdbc42.jar
вlocal-repo
папкуlocal-repo
папке запуститьmvn deploy:deploy-file -Dfile=sqljdbc42.jar -DartifactId=sqljdbc42 -DgroupId=com.microsoft.sqlserver -DgeneratePom=true -Dpackaging=jar -Dversion=6.0.7507.100 -Durl=file://.
для развертывания JAR в локальный репозиторий (хранится вместе с вашим кодом в SCM)sqljdbc42.jar
и скачанные файлы можно удалитьpom.xml
и добавьте ссылку на локальный репозиторий проекта: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>
теперь вы можете запускать свой проект где угодно без каких-либо дополнительных настроек или установок.источник
Вы можете использовать другой драйвер
и в xml
источник