簡體   English   中英

FlyWayDB - 無法解析位置類路徑

[英]FlyWayDB - Unable to resolve location classpath

我在 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]]

我嘗試了一些如上所述的定界符,沒有關鍵字“類路徑”,並且總是在我想使用類路徑時拋出“無法解析位置...”。

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

編輯./ 當我更改遷移 sql 文件的位置和 Flyway 的默認目錄名稱,而不是設置位置時,它工作正常。 所以,結論是我寫錯了類路徑,但我做錯了什么?

默認配置: 1. main/resources/ db / migration < default folder for sql files to migrate 2. not setting location

一些建議?

'classpath' 意味着真正的類路徑,你不能用路徑擴展你的類路徑。

當我看到您的類路徑聲明時,我認為您的遷移將被打包在一個路徑為“ com/some1/some2/some3/database/migration ”的 jar 中

=> 所以你的類路徑配置必須是這樣的:

classpath:com/some1/some2/some3/database/migration

如果您使用基於 SQL 文件的遷移,我對src/main/resources作為基本位置有更好的體驗。

我在同樣的問題上掙扎了幾天。 最終幫助我的是修改pom.xml ,以便<build>節點列出所有帶有屬性文件的位置:

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

建議在 java 構建路徑Project -> Properties -> SourceTab -> AddFolder創建一個文件夾,而不是為 DB 遷移腳本創建完整的包,它將腳本帶到具有所需文件夾名稱的類路徑,並將該名稱保留到您的 JavaClass 中

“類路徑:文件夾名”

對於 meu,@Tinki 給出的 pom.xl 答案中的資源解決了我的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM