Command line missing required dependencies in 3.6.0 tarball

Description

Downloaded tarball from here:

https://github.com/liquibase/liquibase/releases/download/liquibase-parent-3.6.0/liquibase-3.6.0-bin.tar.gz

Extracted to directory on my system. Using java 8. Ran the command line and got this output:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $ ./liquibase Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.NoClassDefFoundError: ch/qos/logback/core/filter/Filter at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.privateGetMethodRecursive(Class.java:3048) at java.lang.Class.getMethod0(Class.java:3018) at java.lang.Class.getMethod(Class.java:1784) at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) Caused by: java.lang.ClassNotFoundException: ch.qos.logback.core.filter.Filter at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 7 more

In previous versions, this was the output:

1 2 3 4 5 Errors: Command not passed Usage: java -jar liquibase.jar [options] [command] snip

One can get a bit further by placing logback-core into the lib folder. With that in place the error is now different:

1 2 3 4 5 6 7 8 9 10 11 $ ./liquibase Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory at liquibase.logging.core.Slf4JLoggerFactory.getLog(Slf4JLoggerFactory.java:9) at liquibase.logging.LogService.getLog(LogService.java:39) at liquibase.integration.commandline.Main.<clinit>(Main.java:67) Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 3 more

The 3 missing jars that got things working for me are:

1 2 3 logback-core-1.2.3.jar logback-classic-1.2.3.jar slf4j-api-1.7.25.jar

which now gives the following output:

1 2 3 4 ./liquibase Starting Liquibase at Mon, 09 Apr 2018 16:43:40 PDT (version 3.6.0 built at 2018-04-05 05:13:19) Errors: No command was passed.

But this version apparently does not have usage info which is quite helpful to have.

Environment

Linux/bash

Status

Assignee

Unassigned

Reporter

Richard Stride

Labels

None

Components

Fix versions

Affects versions

3.6.0

Priority

Major