我正在尝试从命令行运行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
答案 0 :(得分:0)
我的罐子形成不正确。应该使用编译的.class文件而不是.java文件来构建它。