MavenでOracle JDBC(ojdbc.jar)を使うには


Mavenは便利だけど中には手に入らないjarも存在します。

特に会社でMavenを使おう!となるとojdbc.jar つまり、Oracle JDBCが無くて困ります。ではどうするか?

答えは3つあるかなーと。

  1. ojdbcだけはMaven以外で管理する。 つまり普通にlibフォルダに突っ込んでビルドパス通すなりなんなりする。
  2. JDBCドライバのリポジトリは? 上記URLを参考にする。
  3. ローカルリポジトリを使う。

1でもまあ良い気もします。特に欠点はないかもしれません。

2は以下の理由で採用しづらいです。

まずojdbcのバージョンが古いです。2013/9/8現在、Oracle DBは11gでojdbc6.jarが最新です。そしてコメントにもあるように再配布OKなのか怪しいので、ここのURLから取得していいのか分かりません。普通OracleからDLするときにライセンス承認求めてくるので、そっち経路で入手すべきかな。

3が今の所一番良いかと思います。

ローカルリポジトリにojdbc6.jarを用意する

ではどうするかというと、単にmvn install:install-fileするだけです。

まず、備忘録も兼ねてpom.xmlにコメント付きで以下のように書いておきます。

    <!-- OJDBC6用 Maven Centralから持ってこれないので以下のコマンドを実行 -->
    <!-- ローカルのjarをローカルMavenリポジトリに入れる -->
    <!-- mvn install:install-file -Dfile=ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0 -Dpackaging=jar -->
    <dependency>
      <groupId>com.oracle</groupId>
      <artifactId>ojdbc6</artifactId>
      <version>11.2.0</version>
    </dependency>

この時点ではojdbc6なんてないよ?と言われるので、Oracle公式からojdbc6.jarをDLして適当なフォルダに置きます。

次に、コマンドプロンプトでそのフォルダまで行って、上記のコメントアウトのコマンドを実行します。

mvn install:install-file -Dfile=ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0 -Dpackaging=jar

これで、自分のローカルリポジトリ、例えば以下に.jarが配置されるので、上記のdependencyが解決されます。

C:\Users\hoge\.m2\repository\com\oracle\ojdbc6\11.2.0\ojdbc6-11.2.0.jar

じゃあチーム開発ではどうするか?

個人的には各自ライセンス承認してDLして上記の手順でインストールしてください、と言いたい所ですが、そうも行かないケースもあると思います。なので、適当な共有フォルダなり、サーバにリポジトリを用意して、そのリポジトリをに追加すればいいと思います。

以下のURLなどを参考に。

Maven 3章 Maven 入門 (2)