【问题标题】:How to run Liquibase on command line with Custom Change java class?如何使用自定义更改 java 类在命令行上运行 Liquibase?
【发布时间】:2020-10-29 00:40:56
【问题描述】:

我正在尝试从命令行运行我的 liquibase 更新。但是,我的变更日志文件中有一个 customChange,即实现 liquibase.change.custom.CustomChange 的 Java 文件。通过 Spring 运行时更新成功。但是,当我尝试通过命令行应用更新时使用

liquibase --changeLogFile=<my_changelog_file> --username=<my_user> --password=<my_password> --url=<my_url> --driver=org.postgresql.Driver --classpath='<path_to>/postgresql-42.2.8.jar:<absolute_path_to_my_jar.jar>' update

我收到此错误:

Datical 提供的 Liquibase 社区 3.8.6
运行 Liquibase 时出现意外错误:liquibase.parser.core.ParsedNodeException:liquibase.exception.CustomChangeException:java.lang.ClassNotFoundException:com..platform.changeset.EncryptPasswordsChangeset

出于安全原因,我隐藏了我传递的任何真实值。有谁知道如何让 liquibase 找到这个文件?我尝试创建一个仅包含必要文件的 jar 并将该 jar 添加到类路径中,但这似乎不起作用,因为 jar 不包含任何主类。

跑步

jar tf <my_jar.jar>

结果:

META-INF/
META-INF/MANIFEST.MF
com/<my_company>/platform/changeset/EncryptPasswordsChangeset.java
com/<my_company>/platform/security/PasswordEncryptUtil.java
com/<my_company>/platform/encrypt/SymmetricCipher.java

【问题讨论】:

  • 你需要在--classpath选项中添加你的.jar文件
  • 您好,谢谢您的提示。将更新 OP 以包含更多信息。

标签: postgresql liquibase


【解决方案1】:

我的罐子没有正确形成。应该使用已编译的 .class 文件而不是 .java 文件来构建它。

【讨论】:

    猜你喜欢
    • 2018-05-10
    • 1970-01-01
    • 2011-11-24
    • 2020-02-14
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 2019-08-27
    • 1970-01-01
    相关资源
    最近更新 更多