Skip to content

A handy toolbox for Maven Artifacts, powered by Maveniverse MIMA

License

Notifications You must be signed in to change notification settings

maveniverse/toolbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Toolbox

The Toolbox project started with manifold aims:

  • replace MIMA CLI, provide drop-in replacement, but also continue improving it.
  • provide alternative for maven-dependency-plugin, offering similar (sub)set of Mojos
  • showcase MIMA, demonstrate how it helps to write reusable Resolver code that runs embedded in Maven (as Mojos or Extensions), but also outside of Maven as CLI
  • to experiment: was birthplace of Resolver 2.x ScopeManager (that is now part of Resolver 2.x, while Resolver 1.x circumvention is present in Toolbox that supports Maven 3.6+), fixing MNG-8041

Structure of the project:

  • Module "shared" is a reusable library module, that depends on MIMA Context only (and Resolver APIs), and implements all the logic.
  • Module "toolbox" is a Maven Plugin and a CLI at the same time, that exposes Toolbox operations as Mojos and commands. Each Mojo comes in two "flavors": without prefix (i.e. "tree"), that requires project, and uses MavenProject to get the data for requests, and "gav-" prefixed ones (i.e. "gav-tree"), that do not require project, and is able to target any existing Artifact out there.

To use it as Maven plugin, introspect available Mojos and parameters:

$ mvn eu.maveniverse.maven.plugins:toolbox:help -Ddetail

Or, to use it as CLI:

$ jbang toolbox@maveniverse

or you can download the CLI JAR from Maven Central and run it directly.