来自maven的flyway:获取数据源未设置!错误

时间:2017-01-19 21:45:01

标签: mysql maven flyway

我正在尝试使用maven的flyway,而且我对于flyway有一个看起来像这样的pom:

<plugin>
                    <groupId>org.flywaydb</groupId>
                    <artifactId>flyway-maven-plugin</artifactId>
                    <version>3.1</version>
                    <inherited>false</inherited>
                    <executions>
                        <execution>
                            <phase>compile</phase>
                            <goals>
                                <goal>migrate</goal>
                            </goals>
                            <configuration>
                                <user>jrm</user>
                                <password></password>
                                <driver>com.mysql.jdbc.Driver</driver>
                                <url>jdbc:mysql://localhost/fooDB?createDatabaseIfNotExist=true</url>
                                <table>version_history</table>
                                <locations>
                                    <location>
                                        filesystem:../../scripts/entitlement/db/cd
                                    </location>
                                </locations>    

请注意,jrm用户不需要密码,但我对具有非空密码的用户获得了相同的结果。在Windows上,我可以使用MySQL命令行客户端登录数据库。我对这条消息的印象是它表明认证有问题;使用flyway版本4.0.3它说要检查用户,密码和网址。

我相信这可能是Windows特有的问题。请注意,我已将MySQL bin添加到路径环境变量中。我注意到当我尝试使用mysql -u root时,我没有提示输入密码,我只是被拒绝访问,除非我使用mysql -u root -p而且我有理由相信我需要一个用户,因此我的密码为空。

编辑:我正在使用mvn flyway:migrate

1 个答案:

答案 0 :(得分:0)

wemu给出的答案是完全正确的:当前编写pom时,有必要进行mvn编译而不是flyway:migrate。此外,wemu随后关于移动配置的建议应该可以直接调用Flyway,这可能是正确的做事方式。我想来自Flyway插件的错误消息是完全准确的:它没有看到授权/数据库访问配置,但我不太了解Maven理解为什么并花费大量时间认为信息错误而不仅仅是插件不可用。