web-dev-qa-db-ja.com

SQL ServerのMaven依存関係のセットアップ

SQL ServerデータベースにHibernateアクセスできるポートレットを開発しています。私はmaven依存関係を設定し、MySqlが持っているのと同じ方法でSQL Serverコネクタを見つけようとします。

それでも、SQL Serverコネクタを検索する場合、Google検索ではMysqlのみが表示されます。正しいMaven依存関係値とは何ですか?

121
mico

Olafが提供するリンクからドライバーJARをダウンロードし、 ローカルMavenリポジトリーに追加 with;

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>
210
Stu.C

「新しい」および「クールな」マイクロソフトに対する回答。

はい、SQL ServerドライバーはMITライセンスで有効になりました

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

「古い」マイクロソフトに対する回答:

私のユースケース(統合テスト)では、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ドライバーをローカルバージョン管理に入れることができます。各開発者が独自のリポジトリに手動で設定する必要はありません。

別のStack Overflowの質問に対するこの回答 および ここでもブログに書いています からインスピレーションを得ました。

68
Lukas Eder

別の方法もあります。MS-SQLServer用のオープンソース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>

UPDATE2016年11月、MicrosoftはMSSQL JDBCドライバーを公開しました githubで そしてmavenでも利用可能になりました:

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

Microsoft SQL Server JDBCドライバーを探していると思います: http://msdn.Microsoft.com/en-us/sqlserver/aa937724

9
Olaf

上記の答えに注意してください。 sqljdbc4.jarはパブリックライセンスでは配布されないため、ランタイムおよび配布用にjarに含めるのは困難です。詳細とはるかに優れたソリューションについては、以下の回答を参照してください。私がこの答えを見つけたら、私のようにあなたの人生はずっと楽になります。

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

3
<dependency>
  <groupId>com.hynnet</groupId>
  <artifactId>sqljdbc4-chs</artifactId>
  <version>4.0.2206.100</version>
</dependency>

これは私のために働いた(mavenを使用している場合)

https://search.maven.org/artifact/com.hynnet/sqljdbc4-chs/4.0.2206.100/jar

2
Carrot

Sqlserver jarをインストールした後でも、私のMavenはMavenリポジトリーから依存関係を取得しようとしていました。次に、pomにローカルマシンのリポジトリを提供しましたが、その後は正常に動作します...誰かの助けになるかもしれません。

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

Microsoftは、いくつかのドライバーをMaven Centralに公開しているようです。

<dependency>
    <groupId>com.Microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.1.0.jre8</version>
</dependency>
1
andrew-g-za