既存のエンタープライズアプリケーションの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に切り替えることはできません。
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
私はmavenコンパイラ3.6.1とJAVA_HOMEを使用していますワークスペースJREはIBM JREに設定されています。さらに、Mavenビルドを実行しているときにIBM JREも関連付けられています。まだこのエラーが来る:( –