Class.forName(...)
を使用しない場合 ドライバーを手動でロードする場合、maven-assembly-plugin
で悪名高い問題に直面したと思います -異なるjar
からのファイルは、同じ名前のファイルを上書きします s。
この場合、JDBCドライバー検出メカニズムは、/META-INF/services/java.sql.Driver
という名前のファイルに依存しています。 、および少なくとも2つのjar
があります ■依存関係(OracleおよびPostgresドライバー)にそのようなファイルが含まれているため、maven-assembly-plugin
を実行するとそのうちの1つが失われます。 。
maven-shade-plugin
を使用できます maven-assembly-plugin
の代わりに ここで説明するように、これらのファイルを正しくマージします。
または、Class.forName(...)
を使用することもできます 失敗した自動検出メカニズムを回避します。