Tool Runner is a utility and a Maven plugin, that allows to run (and optionally provision beforehand) supported CLI tools as part of the build.
Runtime requirement:
- Java 8+ (library and Maven Plugin)
- Maven 3.6+ (Maven Plugin)
Build requirements:
- Java 21
- Maven 3.9+
antsee https://ant.apache.org/ (1)cosignsee https://github.com/sigstore/cosign (1)gradlesee https://gradle.org/ (1)isxsee https://github.com/Sanne/incus-spawn (2)jbangsee https://github.com/jbangdev/jbangjdkthe$JAVA_HOME/bin/*tools (3)mavensee https://maven.apache.org/minisignsee https://github.com/jedisct1/minisign (1)
Limitations:
- (1) Real version discovery is not yet done, so when LATEST asked, right now a currently known "latest" version is used.
- (2) The
isxis really new tool, only LATEST is being provisioned. - (3) This is a special case, as JDK tool provider always offers "self", the JDK that runs the tool. It currently never provision and supports, it always offers currently running JDK. In the future it may support provisioning and running other JDKs.
Is a reusable library module, that depends on MIMA Context and Resolver APIs, and implements all the core logic
and provides SPI. The idea is that using ToolManager you discover all the available tools, and you can provision
and invoke them. By default, this subproject provides only the "scaffolding" and no tool. Tools are discovered by
ToolProvider SPI and using Java plain ServiceLoader infra.
The tools subproject are where the tool providers are implemented.
The toolrunner subproject is a nearly trivial Maven plugin, that depends on shared. The idea of the plugin is
that when used, user declared not only the plugins, but also plugin dependencies with all the tools user requires,
and they will be dynamically discovered.
Is where the ITs are .