我在项目 v4.2.0 中使用 Liquibase 和 Maven。
我的更改日志位于文件系统上,而不是项目的 JAR 或类路径中。
我使用以下内容来建立我的对象:
liquibase = new Liquibase( changeLogFile, new FileSystemResourceAccessor(), database );
Run Code Online (Sandbox Code Playgroud)
那里changelogFile是类似的东西~/liquibase-sql/changelog/db.changelog.xml
当我调用 时liquibase.validate(),在提醒类路径位置后,我得到以下信息:
Specifying files by absolute path was removed in Liquibase 4.0. Please use a relative path or add '/' to the classpath parameter.
Run Code Online (Sandbox Code Playgroud)
我已经尝试了各种方法,包括file:前缀,并且问题文件可以直接在终端中打开。
我查看了代码,FileSystemResourceAccessor如果它只能使用类路径(已经有一个ClassLoaderResourceAccessor),我对这样命名的概念感到困惑,但我看不到让它工作的方法。
基于非常非常古老的问题,人们以前已经解决过这个问题,但我假设在 4.0 之前?(这在 3.10.3 上运行良好)
有人有任何指点吗?我已经使用了 CLI liquibase 并理解了错误,但我不确定如何在没有绝对路径的情况下无法确定路径,因为我知道这可能会在任意位置的几台不同机器上运行。
这可能是一个小问题,但提前感谢您的帮助。
liquibase ×1