Maven's command-line dependency tooling has always been ... usable, but not exactly pleasant. mvn dependency:tree on a non-trivial project dumps hundreds of lines into your terminal and dares you to find the conflict. Pilot, a new plugin from Guillaume Nodet of the Maveniverse project, is a serious attempt to fix that.
Released April 10th, Pilot wraps nine dependency management workflows in keyboard-driven terminal UIs: dependency tree browsing with conflict highlighting, update checking with color-coded severity (green/yellow/red by patch/minor/major), a declared-vs-used analyzer backed by ASM bytecode analysis, CVE and license auditing via OSV.dev, and a few others. You can jump straight to any goal or use pilot:pilot as an interactive launcher.
Bruno Borges had opened a PR against the Maven Dependency Plugin adding dependency:add, dependency:remove, and dependency:search - the kind of ergonomics npm and Cargo users take for granted. Nodet followed with a rewrite on top of DomTrip, a lossless XML editing library also from the Maveniverse project, and the interactive search UI that came out of that work became the seed for Pilot as a standalone plugin.
Pilot routes all POM edits through DomTrip, which means your formatting, comments, and whitespace survive - no phantom reformatting noise in your diffs.
The TUI layer runs on TamboUI, a Java TUI framework.
This is a 0.1.0 and it feels like one. The most immediate friction is screen refresh behavior: redraws aren't always consistent, and the experience can feel erratic in ways that undercut the otherwise solid feature set. The bones are good - the dependency tree with reverse path lookup, the bytecode analysis that tells you not just that a dependency is unused but which classes reference it, the single-keypress apply on updates and conflict pins - but the UI surface needs polish before it becomes a default part of your workflow.
Nodet describes it as "vibecoded" - built from idea to release using AI agents - which is an interesting disclosure. On many forums and in many projects AI usage is frowned upon or rejected outright, yet Pilot addresses Maven's need for a functional UI1, a need that's been around for literal decades.
To try it on any Maven 3.6.3+/Java 17+ project:
mvn eu.maveniverse.maven.plugins:pilot:pilot
Add the plugin group to ~/.m2/settings.xml for the short form:
<pluginGroups>
<pluginGroup>eu.maveniverse.maven.plugins</pluginGroup>
</pluginGroups>
Then mvn pilot:pilot gives you the launcher; mvn pilot:tree, mvn pilot:updates, etc. jump straight to individual tools. Bytecode analysis requires compiled classes, so mvn compile pilot:dependencies.
-
Maven has tooling, of course; Eclipse's m2e is workable, IDEA has some tooling, and so forth, but most users still find themselves copy-pasting XML back and forth.
↩