【问题标题】:FlyWayDB - Unable to resolve location classpathFlyWayDB - 无法解析位置类路径
【发布时间】:2017-10-17 08:26:16
【问题描述】:

我在使用 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] [[ 无法解析位置类路径:ProjectName/src/main/java/com/some1/some2/some3/database/migration]]

我尝试了一些如上所述的分隔符,没有关键字“classpath”,并且总是在我想使用类路径时抛出“无法解析位置......”。

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

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

默认配置: 1. main/resources/db/migration

有什么建议吗?

【问题讨论】:

  • 当使用 classpath 删除 src/main/java 因为那是类路径。

标签: java flyway


【解决方案1】:

'classpath' 表示真正的类路径,你不能用路径扩展你的类路径。

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

=> 所以你的类路径配置必须是这样的:

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

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

【讨论】:

  • 我试试这个,我写的那个不起作用。不需要声明关键字“classpath”,因为当您只放置路径时,默认flyway中没有任何关键字(classpath,filesystem)将其视为类路径。遵循文档:“无前缀的位置或以类路径开头的位置”。 flywaydb.org/documentation/api/javadoc/org/flywaydb/core/…
【解决方案2】:

我为同样的问题苦苦挣扎了几天。最终帮助我的是修改pom.xml,使<build>节点列出所有带有属性文件的位置:

<project...>
  ...
  <build>
     <resources>
        ...
        <resource>
           <directory>src/main/resources</directory>
           <includes>
             <include>*.*</include>
             <include>sql/migration/*</include>
           </includes>
        </resource>
     </resources>
  </build>
</project>

【讨论】:

    【解决方案3】:

    建议不要为 DB 迁移脚本创建完整的包,而是在 java build pathProject -&gt; Properties -&gt; SourceTab -&gt; AddFolder 创建一个文件夹,它将脚本带到具有所需文件夹名称的类路径,并将该名称保存到您的 JavaClass 中

    “类路径:文件夹名”

    【讨论】:

      猜你喜欢
      • 2019-01-28
      • 1970-01-01
      • 1970-01-01
      • 2022-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-18
      相关资源
      最近更新 更多