liquibase.exception.ChangeLogParseException:读取迁移文件时出错:找到 2 个匹配 mychanges.xml 的文件
liquibase.exception.ChangeLogParseException: Error Reading Migration File: Found 2 files that match mychanges.xml
当我尝试通过以下方式启动 Liquibase 时:
JdbcConnection liquibaseConnection = new JdbcConnection(connection);
Liquibase liquibase = new Liquibase("mychanges.xml",
new ClassLoaderResourceAccessor(),liquibaseConnection);
liquibase.update("dev");
当它要更新时我得到这个异常
liquibase.exception.ChangeLogParseException: Error Reading Migration File: Found 2 files that match mychanges.xml
并由以下原因引起:
Caused by: java.io.IOException: Found 2 files that match mychanges.xml
这看起来很奇怪,因为当我查看 war
文件时,它只包含一个 mychanges.xml
我试过重命名它并将其移动到另一个位置。
我不明白为什么它给我这个异常。请帮忙
我自己找的。抛出的异常不正确。
这实际上意味着找不到该文件。
这种情况非常奇怪的例外。
有了这个我发现我的类路径有点坏了。
我遇到了同样的问题,在ClassLoaderResourceAccessor.java中找到了以下原因:
Enumeration<URL> resources = classLoader.getResources(path);
因此,您的 xml 必须是类路径的一部分,而不是文件系统中的路径或类似的路径。
检查您的 pom.xml 。您的 pom.xml 中可能有额外的依赖项或 pom.xml 中的一些未使用的项目。
此外,您使用 pom 导入的项目具有相同的数据库文件名。
我通过从 pom.xml
中删除额外的依赖关系解决了这个问题
在我的例子中,更新 sql 文件的文件夹路径中包含非 ASCII 字符(表达式:éáű)。将更新文件移动到仅 ASCII 的文件夹路径有效。
这是 Liquibase 4.2.0(2020-11-13 版)。
[咆哮]
想象一下在 2020 年支持 Unicode。
Liquibase 团队:nah
[/咆哮]
当我尝试通过以下方式启动 Liquibase 时:
JdbcConnection liquibaseConnection = new JdbcConnection(connection);
Liquibase liquibase = new Liquibase("mychanges.xml",
new ClassLoaderResourceAccessor(),liquibaseConnection);
liquibase.update("dev");
当它要更新时我得到这个异常
liquibase.exception.ChangeLogParseException: Error Reading Migration File: Found 2 files that match mychanges.xml
并由以下原因引起:
Caused by: java.io.IOException: Found 2 files that match mychanges.xml
这看起来很奇怪,因为当我查看 war
文件时,它只包含一个 mychanges.xml
我试过重命名它并将其移动到另一个位置。
我不明白为什么它给我这个异常。请帮忙
我自己找的。抛出的异常不正确。 这实际上意味着找不到该文件。 这种情况非常奇怪的例外。
有了这个我发现我的类路径有点坏了。
我遇到了同样的问题,在ClassLoaderResourceAccessor.java中找到了以下原因:
Enumeration<URL> resources = classLoader.getResources(path);
因此,您的 xml 必须是类路径的一部分,而不是文件系统中的路径或类似的路径。
检查您的 pom.xml 。您的 pom.xml 中可能有额外的依赖项或 pom.xml 中的一些未使用的项目。 此外,您使用 pom 导入的项目具有相同的数据库文件名。
我通过从 pom.xml
中删除额外的依赖关系解决了这个问题在我的例子中,更新 sql 文件的文件夹路径中包含非 ASCII 字符(表达式:éáű)。将更新文件移动到仅 ASCII 的文件夹路径有效。
这是 Liquibase 4.2.0(2020-11-13 版)。
[咆哮]
想象一下在 2020 年支持 Unicode。
Liquibase 团队:nah
[/咆哮]