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(...)を使用することもできます 失敗した自動検出メカニズムを回避します。