如果您
Class.forName(...)不习惯手动加载驱动程序,那么我认为您会遇到一个臭名昭著的问题
maven-assembly-plugin-当文件来自不同
jars 时,它会覆盖具有相同名称的文件。
在您的情况下,JDBC驱动程序发现机制依赖于一个名为的文件
/meta-INF/services/java.sql.Driver,并且您的依赖项中至少有两个
jar包含这样的文件(Oracle和Postgres驱动程序),因此其中一个会在运行后丢失
maven-assembly-plugin。
您可以使用
maven-shade-plugin,而不是
maven-assembly-plugin作为描述这些文件正确地将合并,在这里。
或者,您可以使用
Class.forName(...)躲避失败的自动发现机制。



