2017-03-29 19 views
0

既存のエンタープライズアプリケーションの1つをmavenプロジェクトに変換しています。変更を最小限に抑えるために、既存のすべてのjarファイルをグローバルリポジトリからダウンロードするのではなく、ローカルリポジトリに手動でインストールすることで、既存のすべてのjarファイルを再利用することにしました。このアプリケーションは、耳がRAD/ECLIPSEからエクスポートされたときにうまく機能しました。このアプリケーションは現在、ojdbc6.jarを使用しています。しかし、Mavenのプロジェクトに変換した後、我々はMavenのビルドを実行すると、私たちはクラスのいずれかの次のコンパイルエラーが表示されます。Mavenビルドはojdbc6.jarで失敗しますが、ojdbc7.jarで動作します

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler- 
    plugin:2.3.2:compile (default-compile) on project OLS: Compilation 
    failure: Compilation failure: 
    [ERROR] \workspace_maven\Project\src\com\datalayer\MyConnection.java: 
    [601,0] error: myOracleCachedRowSet is not abstract and does not 
    override abstract method <T>getObject(String,Class<T>) in ResultSet 

MyConnection.javaファイルは、内部クラスmyOracleCachedRowSetクラス拡張OracleCachedRowsetクラスを持っており、RowSetインタフェースを実装します。 ibm固有のJDK 7およびmavenバージョン3.3.9を使用しています。しかし、ojdbc7.jarに切り替えると、このコンパイル・エラーはmavenビルドには現れません。しかし、私が以前に言ったように、このビルドはojdbc6 jarを使ってMavenなしでEclipse/RADからうまく動作します。だから私はこのmavenビルドがojdbc jarバージョンにどのように接続されているのだろうと思っています。 2つの間の接続はどこですか。誰も助けることができますか? また、Oracle 11gを使用しているため、Oracle 12cデータベースで使用されているため、ojdbc7 jarに切り替えることはできません。

+0

Mavenはojdbc.jarバージョンには接続されていません。 Eclipse/RADのEclipse/RADの違いは、Mavenでは使用されていない別のコンパイラを使用しているためです。 EclipseとRADの違いもあります。さらに、IBM JDK 7コンパイラを使用するように正しく設定していますか?正しく定義されたJAVA_HOME?それ以外は、より多くのuptodateプラグインを使用することをお勧めします。maven-compiler-plugin 2.3.2は少し古いです...(現在のバージョン3.6.1).... – khmarbaise

+0

私はmavenコンパイラ3.6.1とJAVA_HOMEを使用していますワークスペースJREはIBM JREに設定されています。さらに、Mavenビルドを実行しているときにIBM JREも関連付けられています。まだこのエラーが来る:( –

答えて

0

ojdbc6.jarファイルをローカル.m2フォルダに追加して、POM.xmlに依存関係を使用できます。

mvn install:install-file -Dfile=/home/user/Libraries/ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11g -Dpackaging=jar 

次のようにPOM.xmlに依存することができます。

<dependency> 
     <groupId>com.oracle</groupId> 
     <artifactId>ojdbc6</artifactId> 
     <version>11g</version> 
    </dependency> 
関連する問題