flywaydb:无法实例化jdbc驱动程序

时间:2015-01-25 07:26:45

标签: flyway

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

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

jarDir不是Maven插件的配置参数。它仅在命令行工具中可用。

在您的情况下,您应该将JDBC驱动程序添加为插件的依赖项。这样它就不会显示在应用程序的类路径上。