ClassNotFoundException 运行 Liquibase 独立于命令行
ClassNotFoundException running Liquibase standalone on command line
我想在命令行上 运行 Liquibase 独立(即 w/o "installation")。但是,无论我尝试什么,我都会得到 java.lang.ClassNotFoundException: ch.qos.logback.core.Context
或其他一些 logback class.
我检查了 Liquibase pom.xml
以准确找出它需要哪些依赖项并相应地提供它们。
1.尝试
java -jar liquibase-core-3.8.6.jar \
-cp jaxb-api-2.3.0.jar:snakeyaml-1.24.jar:slf4j-api-1.7.28.jarlogback-core-1.2.3.jar::logback-classic-1.2.3.jar \
--classpath=backend/target/mywar.war \
--changeLogFile=db/changelog/db.changelog-master.xml
2。并进一步尝试
我知道 -cp
是 java
命令的常规 class 路径参数,--classpath
是 Liquibase 根据 the documentation 的程序参数.然而,我仍然尝试了第一次尝试的各种参数组合,但无济于事。
哎呀,我真傻。如今,随着所有 IDE 魔法的出现,您忘记了如何在 CLI 上启动 Java 程序。
您不能将 -jar
和 -cp
组合在一起,即您不能将额外的 JAR 放在带有 -jar
的类路径上。
因此,要解决此问题,您需要 java -cp ... liquibase.integration.commandline.Main --classpath=...
。
我想在命令行上 运行 Liquibase 独立(即 w/o "installation")。但是,无论我尝试什么,我都会得到 java.lang.ClassNotFoundException: ch.qos.logback.core.Context
或其他一些 logback class.
我检查了 Liquibase pom.xml
以准确找出它需要哪些依赖项并相应地提供它们。
1.尝试
java -jar liquibase-core-3.8.6.jar \
-cp jaxb-api-2.3.0.jar:snakeyaml-1.24.jar:slf4j-api-1.7.28.jarlogback-core-1.2.3.jar::logback-classic-1.2.3.jar \
--classpath=backend/target/mywar.war \
--changeLogFile=db/changelog/db.changelog-master.xml
2。并进一步尝试
我知道 -cp
是 java
命令的常规 class 路径参数,--classpath
是 Liquibase 根据 the documentation 的程序参数.然而,我仍然尝试了第一次尝试的各种参数组合,但无济于事。
哎呀,我真傻。如今,随着所有 IDE 魔法的出现,您忘记了如何在 CLI 上启动 Java 程序。
您不能将 -jar
和 -cp
组合在一起,即您不能将额外的 JAR 放在带有 -jar
的类路径上。
因此,要解决此问题,您需要 java -cp ... liquibase.integration.commandline.Main --classpath=...
。