SAR*_*SAR 101 sql-server spring pom.xml maven
我试图在我的POM.xml文件中添加MS SQL驱动程序依赖项,以下是依赖项.
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
但我得到了这个例外
缺少工件com.microsoft.sqlserver:sqljdbc4:jar:4.0
我真的不明白这个问题.
DB5*_*DB5 156
UPDATE
Microsoft现在在maven central中提供此工件.有关详细信息,请参阅@ nirmal的答案:https://stackoverflow.com/a/41149866/1570834
原始答案
问题是Maven无法在任何配置的maven存储库中找到此工件.
遗憾的是,Microsoft并未通过任何maven存储库提供此工件.您需要从Microsoft网站下载jar ,然后手动将其安装到本地maven存储库中.
您可以使用以下maven命令执行此操作:
mvn install:install-file -Dfile=sqljdbc4.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar
Run Code Online (Sandbox Code Playgroud)
然后,下次在POM上运行maven时,它会找到该工件.
nir*_*mal 67
微软最近开源了他们的jdbc驱动程序.
您现在可以在maven central上找到驱动程序:
<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.1.0.jre8</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
或者对于java 7:
<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.1.0.jre7</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
pro*_*mer 27
我遇到了类似的问题并通过以下方式解决了这个问题.
*下一步 - >填写
Artifact file:
您下载的jar 的以下详细信息路径(例如:E:\ lib\sqljdbc4.jar在我的情况下)
Group Id:com.microsoft.sqlserver
Artifact Id:sqljdbc4
Version:4.0

Nel*_*ess 11
以上答案仅将sqljdbc4.jar添加到本地存储库.因此,在创建用于分发的最终项目jar时,sqljdbc4将再次丢失,如@Tony关于运行时错误的注释所示.
Microsoft(以及Oracle和其他第三方提供商)根据ENU/EULA限制其软件的分发.因此,这些软件模块不会被添加到Maven生产的罐子中进行分发.有一些黑客可以绕过它(例如在运行时提供第三方jar文件的位置),但作为开发人员,您必须小心违反许可.
jdbc连接器/驱动程序的一个更好的方法是使用jTDS,它与大多数DBMS兼容,更可靠,更快(根据基准),并在GNU许可下分发.它将使你的生活更容易使用,而不是尝试按照上述任何其他技术将方形钉钉入圆孔.
Vác*_*žel 11
您还可以创建项目存储库.如果更多开发人员正在处理同一个项目,并且该库必须包含在项目中,这将非常有用.
首先,在项目的lib目录中创建一个存储库结构,然后将库复制到其中.该库必须具有以下名称格式:<artifactId>-<version>.jar
<your_project_dir>/lib/com/microsoft/sqlserver/<artifactId>/<version>/
在库文件旁边创建pom文件,并将以下信息放入其中:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.2.0</modelVersion>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.2</version>
</project>
Run Code Online (Sandbox Code Playgroud)此时,您应该具有以下目录结构:
<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文件并添加新存储库:
<repositories>
<repository>
<id>Project repository</id>
<url>file://${basedir}/lib</url>
</repository>
</repositories>
Run Code Online (Sandbox Code Playgroud)最后,添加对库的依赖:
<dependencies>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.2</version>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)更新4.3.2017
似乎可以从公共可用的存储库中获取该库.@see nirmal's和Jacek Grzelaczyk的答案了解更多细节.
| 归档时间: |
|
| 查看次数: |
146385 次 |
| 最近记录: |