A lightweight Maven dependency resolver
A lightweight Maven dependency resolver.
lonae
allows you to resolve runtime dependency graphs for Maven artifacts and
repositories from within your client code.
Quick disclaimer: To make the best use of your time (and mine):
This project, although functional, is still in an experimental stage. If you
are expecting to get artifacts resolved in the exact same way Maven
or Gradle would, thenlonae
is not for you. At least not until solid
support for runtime dependency semantic quirks is established/implemented.
That said, lonae
will try to make a reasonable choice of run-time artifact
selections based on a set of Maven coordinates that you provide.
NOTE: since “reasonable“ has a very broad interpretation, please be sure
to read these usage notes in their entirety.
Add the following dependency from JCenter to your project:
implementation "io.vacco.lonae:lonae:<VERSION>"
MmRepository repo = new MmRepository("/tmp/repo", "https://repo1.maven.org/maven2/");
List<MmResolutionResult> jars = repo.installDefaultFrom(MmCoordinates.from("org.apache.arrow:arrow-jdbc:0.12.0"));
List<MmResolutionResult> sources = repo.installFrom(MmCoordinates.from("org.apache.arrow:arrow-jdbc:0.12.0"), "sources");
So far, I have yet to find a minimalistic library which supports M2 artifact
resolution semantics. The libraries mentioned at the end of this document are
more specialized in execution scopes other than run-time. They also bring in
additional frameworks and dependencies of which I have very little
to no control of (as well as a deep understanding of, for better or worse).
Again, the purpose of lonae
is completely focused on the runtime artifact
retrieval for an application.
import
scoped pom
dependencies (to support multiple inheritance.LATEST
version selector.SNAPSHOT
artifacts.A few recommendations:
This project is not production ready, and still requires security and code correctness audits.
You use this software at your own risk. Vaccove Crana, LLC., its affiliates and subsidiaries waive
any and all liability for any damages caused to you by your usage of this software.