如何使用自定义更改Java类在命令行上运行Liquibase?

时间:2020-07-08 14:51:20

标签: postgresql liquibase

我正在尝试从命令行运行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

1 个答案:

答案 0 :(得分:0)

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