Jacli is command-line-focused package manager, very similar to Npm, Rubygems, Pip, Homebrew, but for Java. Say, you have a JAR, which is supposed to be run like this:
$ java -jar foo.jar
To let your users use your foo.jar
this way, you have to either make it "fat" or instruct them to download all dependencies and make them available on the classpath. In either case, they have to download binaries manually, for example with wget
. Besides, you have to make sure they have the right version of the JVM installed. It's a hassle.
Instead, you use jacli and let your users do this (say, you are on MacOS and org.cqfn:foo:1.0.4
are the coordinates of the JAR in Maven Central):
$ brew install jacli
$ jacli install org.cqfn:foo:1.0.4
$ foo
You can also do uninstall
, list
, check
, and so on. Jacli is checking the JVM for you, downloading all dependencies, creating the command line hook at /usr/local/bin/
and so on. It does everything you need in order to run this single JAR smoothly.
Jacli uses Maven under the hood and respects your settings.xml
.
All you need to do in order to make your JAR jacli-ready is to put jacli.properties
into its META-INF
directory and release it to Maven Central (the pom.xml
accompanying your JAR will be used to download dependencies):
binary=foo
jvm.min=8
jvm.max=13
BTW, we are aware of Coursier.
The logo is made by Freepik.