JDBC驱动程序需要位于非类路径目录中。我正在使用Maven来设置Flyway DB和migrate
的配置作为目标。我在jarDir
配置部分中提供了JDBC驱动程序的位置,但是当我执行migrate
目标时,它仍然无法识别相关的JDBC驱动程序。
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>3.0</version>
<executions>
<execution>
<id>sql-enrichment-setup</id>
<phase>pre-integration-test</phase>
<goals>
<goal>migrate</goal>
</goals>
<configuration>
<url>jdbc:postgresql://localhost/enrichment?charSet=utf8</url>
<user>enrichment</user>
<password>enrichment</password>
<schemas>
<schema>public</schema>
</schemas>
<table>schema_history</table>
<initVersion>1.0</initVersion>
<initDescription>Base Migration</initDescription>
<jarDir>/Users/abc/jars</jarDir>
<skip>${skipITs}</skip>
<locations>
<location>
filesystem:${basedir}/integration-test-helpers/sql/enrichment/migrations
</location>
</locations>
</configuration>
</execution>
</executions>
</plugin>
但是,当我执行时,我仍然得到:
无法在项目esa-core上执行目标org.flywaydb:flyway-maven-plugin:3.0:migrate(sql-enrichment-setup):org.flywaydb.core.api.FlywayException:无法实例化jdbc驱动程序:org .postgresql.Driver
如何解决此问题?
答案 0 :(得分:0)
jarDir
不是Maven插件的配置参数。它仅在命令行工具中可用。
在您的情况下,您应该将JDBC驱动程序添加为插件的依赖项。这样它就不会显示在应用程序的类路径上。