最新のOracleドライバーをMaven2で管理する
古いJavaをバージョンアップしようと試みたところ、Oracleドライバが古く、最新のJavaで利用できませんでした。そこで、Oracleのドライバもバージョンアップします。幸い、Mavenで構成管理されているプロジェクトなので、比較的楽に対応出来そうです。
環境は、Eclipse, Java8, Oracle12c, Maven2です。
pom.xmlにOracle JDBCドライバと必要なjarファイルを記載します。orai18nはグローバリゼーション・サポート用のライブラリで、複数のキャラクタセットを扱うために必要です。
<dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc7</artifactId> <version>12.1.0.2</version> </dependency> <dependency> <groupId>oracle</groupId> <artifactId>orai18n</artifactId> <version>12.1.0.2</version> <scope>provided</scope> </dependency>
Mavenを利用して、依存パッケージのアップデートをしてみます。
おこられました。
[WARN] The POM for com.oracle:ojdbc7:jar:12.1.0.2 is missing, no dependency information available [WARN] The POM for oracle:orai18n:jar:12.1.0.2 is missing, no dependency information available
Mavenのリポジトリからは取得できないようなので、実ファイルを入手します。
以下のURLからOJDBCドライバーとグローバリゼーション・サポート用のjarファイルをダウンロードします。
(Oracleの会員登録が必要です。無料です。)
Oracle Database 12.1.0.2 JDBC Driver & UCP Downloads
ドライバ
ojdbc7.jar – Certified with JDK7 and JDK 8; It contains the JDBC driver classes except classes for NLS support in Oracle Object and Collection types.
グローバリゼーション・サポート用のjarファイル
orai18n.jar – Classes for NLS(National Language Support) support
jarファイルを参照できるようにします。
やり方が3つあります。
1.指定のフォルダに置いてsystemPath指定
プロジェクト直下にlibフォルダ(名前は任意)を作成します
pom.xmlにscopeとsystemPathを記載します。
<dependency> <groupId>com.oracle</groupId> <artifactId>orai18n</artifactId> <version>12.1.0.2</version> <scope>system</scope> <systemPath>${basedir}/lib/orai18n.jar</systemPath> <!-- must match file name --> </dependency> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc7</artifactId> <version>12.1.0.2</version> <scope>system</scope> <systemPath>${basedir}/lib/ojdbc7.jar</systemPath> <!-- must match file name --> </dependency>
無事に入りました!
2.ローカルのmavenリポジトリにライブラリをインストール
以下のコマンドを実行すると、ローカルのmavenリポジトリにファイルがインストールされます。あとは他のライブラリ同様に参照することができるようになります。
mvn install:install-file -Dfile=/path/to/ojdbc7.jar -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0.2 -Dpackaging=jar
3.OracleのMavenリポジトリから入手(未検証)
なんと、ブログを書いている時に知ったのですが、Oracle Maven Repository というものがあるようです。
この方法が一番良さそうですが、試していないです。
以下の記事を参考にどうぞ。
Dev2Dev
Get Oracle JDBC drivers from the Oracle Maven Repository – NetBeans, Eclipse & Intellij
以上です。