SQL Server에 대한 Maven 종속성 설정


122

SQL Server 데이터베이스에 대한 Hibernate 액세스 권한이있는 포틀릿을 개발 중입니다. Maven 종속성을 설정했습니다. 그것에 대한 을 MySql에있는 것과 동일한 방식으로 SQL Server 커넥터를 찾으려고 노력합니다.

여전히 내 Google 검색은 SQL Server 커넥터를 검색하면 Mysql 만 제공합니다. 올바른 Maven 종속성 값 은 무엇입니까 ?


답변:


213

Olaf에서 제공하는 링크에서 드라이버 JAR을 다운로드하고 다음을 사용하여 로컬 Maven 저장소에 추가하십시오 .

mvn install:install-file -Dfile=sqljdbc4.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar

그런 다음 프로젝트에 추가하십시오.

<dependency>
  <groupId>com.microsoft.sqlserver</groupId>
  <artifactId>sqljdbc4</artifactId>
  <version>4.0</version>
</dependency>

13
Olaf의 답변에서 링크 된 버전에 대한 릴리스 정보에는 "SQL Server 용 Microsoft JDBC Driver 4.0"이라고 나와 있습니다. 그래서 mvn 설치에서 "-Dversion = 4.0"을 사용합니다.
George Armhold 2010

2
문제가 발생했습니다. "이 디렉토리에 POM이 없습니다."이에 대한 해결책은 다음에서 찾을 수 있습니다. stackoverflow.com/questions/16348459/…
Alan B. Dee

4
소스 포지 jtds 라이브러리는 당신의 대답이다
Junchen 리우

1
여기에서 jar를 다운로드 할 수 있습니다. java2s.com/Code/Jar/s/Downloadsqljdbc420jar.htm
İsmail Yavuz

로컬 메이븐 리포지토리에 다운로드하고 추가하면 앱을 빌드하는 개발 머신과 긴밀하게 연결되지 않습니까? 동일한 프로젝트를 다른 시스템에서 빌드하려고하면 로컬 저장소에서 jar를 찾을 수 없습니다. VCS에서 사용할 수 있도록 프로젝트에 추가하는 것이 좋지 않습니까?
Obaid Maroof

69

"신규"및 "멋진"Microsoft에 대한 답변입니다.

Yay, SQL Server 드라이버는 현재 MIT 라이센스를 사용합니다.

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.1.0.jre8</version>
</dependency>

"오래된"Microsoft에 대한 답변 :

내 사용 사례 (통합 테스트)의 경우 JDBC 드라이버의 종속성에 대한 시스템 범위를 다음과 같이 사용하는 것으로 충분했습니다.

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>sqljdbc4</artifactId>
    <version>3.0</version>
    <scope>system</scope>
    <systemPath>${basedir}/lib/sqljdbc4.jar</systemPath>
    <optional>true</optional>
</dependency>

이렇게하면 JDBC 드라이버를 로컬 버전 제어에 넣을 수 있습니다. 각 개발자가 자신의 저장소에 항목을 수동으로 설정할 필요가 없습니다.

난에서 영감을했다 다른 스택 오버플로 질문이 대답 하고 나 또한 여기에 대해 블로그했습니다 .


그것이 가능하다면, 나는 로컬 메이븐 저장소 (넥서스)에서 JAR을 업로드하는 것이 좋습니다 생각
mcoolive

@mcoolive : 확실히 더 낫습니다. 그러나 때로는 빠르고 더러운 일을하는 것이 더 쉽고 (그리고 여전히 적절합니다).
Lukas Eder 2015 년

이 답변은 Touzery의 업데이트 된 답변에 비해 구식입니다.
Blessed Geek

1
@BlessedGeek : 글쎄, 나는 Touzery 이전에도 내 대답을 업데이트했습니다. 사실 Touzery의 대답은 여전히 ​​sourceforge의 라이브러리를 참조하기 때문에 더 구식입니다. sourceforge !!
Lukas Eder

1
@MikhailFedorov : 내 솔루션이 저에게 효과적이었습니다. 이 문제를 해결하는 방법을 보여주는 자신의 답변 (또는 질문 / 답변 쌍)을 자유롭게 추가하면 커뮤니티에 도움이 될 것입니다.
루카스 에더

16

대안도 있습니다. MS-SQL Server 용 오픈 소스 jTDS 드라이버를 사용할 수도 있습니다.이 드라이버는 Microsoft에서 만들지 않았지만 호환됩니다. 해당 드라이버의 경우 사용할 수있는 Maven 아티팩트가 있습니다.

http://jtds.sourceforge.net/

에서 http://mvnrepository.com/artifact/net.sourceforge.jtds/jtds :

<dependency>
    <groupId>net.sourceforge.jtds</groupId>
    <artifactId>jtds</artifactId>
    <version>1.3.1</version>
</dependency>

2016 년 11 월 업데이트 , Microsoft는 이제 MSSQL JDBC 드라이버 를 github에 게시했으며 이제 maven에서도 사용할 수 있습니다.

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.1.0.jre8</version>
</dependency>

Java 1.6의 경우 : 1.7 .. <dependency> <groupId> net.sourceforge.jtds </ groupId> <artifactId> jtds </ artifactId> <version> 1.2.4 </ version> </ dependency>
Roshan Khandelwal

2
그 ... 요즘 나쁜 조언을 할 수 있도록 2013 년부터 JTDS의 어떤 버전이 없었다 참고
엠마뉴엘 Touzery

jtds 드라이버는 Java 8 (패치되었지만 릴리스되지 않음)의 ssl에 문제가 있었기 때문에 sqljdbc4로 전환했습니다
rychu

9

Microsoft SQL Server JDBC 드라이버를 찾고 있다고 생각합니다. http://msdn.microsoft.com/en-us/sqlserver/aa937724


네, 이거예요. maven을 통해로드하고 싶으므로 실제로 내 질문에 대한 대답이 아닙니다. 그래서, 첫 번째 기부는 그의 대답에 대한 내 진드기를 얻을 것입니다!
mico

3
JDBC 드라이버의 라이선스 및 재배포와 관련하여 Maven과 Microsoft 직원 사이에 약간의 불일치가있는 것 같습니다. blogs.msdn.com/b/jdbcteam/archive/2010/03/02/…
Olaf

3

위의 답변에주의하십시오. sqljdbc4.jar는 공용 라이센스로 배포되지 않으므로 런타임 및 배포를 위해 jar에 포함하기가 어렵습니다. 자세한 내용과 훨씬 더 나은 솔루션은 아래 내 대답을 참조하십시오. 이 대답을 찾으면 내 인생이 훨씬 쉬워 질 것입니다.

https://stackoverflow.com/a/30111956/3368958


2

sqlserver jar를 설치 한 후에도 내 maven은 maven 저장소에서 종속성을 가져 오려고했습니다. 그런 다음 내 pom에 내 로컬 컴퓨터의 저장소를 제공했으며 그 후에는 잘 작동합니다 ... 누군가에게 도움이 될 수 있습니다.

    <repository>
        <id>local</id>
        <name>local</name>
        <url>file://C:/Users/mywindows/.m2/repository</url>
    </repository>


1

Microsoft가 드라이버를 maven Central에 게시 한 것 같습니다.

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.1.0.jre8</version>
</dependency>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.