FlyWayDB - 无法解析位置类路径

new*_*One 8 java flyway

我在使用 FLyway 中的类路径设置位置时遇到问题,当我使用文件系统时,它可以正常工作。

例子:

这个工作: this.setLocations("filesystem:C:\\Projects\\ProjectName\\src\\main\\java\\com\\some1\\some2\\some3\\database\\migration");

这不起作用(我尝试使用分隔符:“\”、“.”、“/”): this.setLocations("classpath:ProjectName/src/main/java/com/some1/some2/some3/database/migration");

不工作时,其抛出错误:

[警告] [] [org.flywaydb.core.internal.util.scanner.classpath.ClassPathScanner] [tid: _ThreadID=19 _ThreadName=RunLevelControllerThread-xx] [timeMillis: 1495044249009] [levelValue: 900] [[ 无法解析位置类路径:项目名称/src/main/java/com/some1/some2/some3/database/migration]]

我尝试了上面的一些分隔符,没有关键字“classpath”,并且总是当我想使用 classpath 时它抛出“无法解析位置......”。

我使用 flyway 版本 4.1.2 和 JavaAPI( https://flywaydb.org/getstarted/firststeps/api )

编辑。/当我更改迁移 sql 文件的位置和 Flyway 默认的目录名称,而不是设置位置时,它工作正常。所以,结论是我写错了类路径,但我做错了什么?

默认配置:1.main/resources/ db / migration <sql文件要迁移的默认文件夹 2.未设置位置

一些建议?

Flo*_* E. 1

“classpath”意味着真正的类路径,你不能用路径扩展你的类路径。

当我看到你的类路径声明时,我认为你的迁移将被打包在路径为 ' com/some1/some2/some3/database/migration'的 jar 中

=> 所以你的类路径配置必须如下所示:

类路径:com/some1/some2/some3/database/migration

如果您使用基于 SQL 文件的迁移,我对src/main/resources作为基本位置有更好的经验。