【问题标题】:Flyway callback classpathFlyway 回调类路径
【发布时间】:2014-08-01 18:01:58
【问题描述】:

我正在使用 Flyway Maven 插件进行迁移。

我写了一个回调类进入资源目录并运行函数/过程文件。但是它没有在资源文件夹中找到一些文件。

我在文件夹src/main/resources/db/functions中添加了函数文件。

在我的flyway回调代码中,我调用了以下代码,但我得到了一个null url。

URL url = ClassLoader.getSystemResource("db/functions/mySQL.sql");

我还尝试了一些获取系统资源的变体,例如在前面添加classpath 和一些变体来获取资源。

如果我使用 Flyway Java API 使用 main 方法创建了一个类,则相同的代码可以工作,这似乎是 Maven 中的类加载器问题。我该怎么做?

【问题讨论】:

    标签: maven classpath flyway


    【解决方案1】:

    两个选项。

    选项 1:

    • 不要忘记调用 compile 以确保资源在类路径中可用
    • 使用Thread.currentThread().getContextClassLoader().getResourceAsStream()

    选项 2:

    • 使用文件阅读器

    【讨论】:

      猜你喜欢
      • 2019-08-15
      • 2023-03-22
      • 2018-10-18
      • 2020-04-29
      • 2018-08-17
      • 2018-07-06
      • 2018-10-28
      • 2012-02-07
      • 1970-01-01
      相关资源
      最近更新 更多