Skip to content

lndbrg/mvn-autoenforce

Repository files navigation

mvn-autoenforce

Motivation

Managing dependencies are hard, managing dependencies with multiple versions are even harder and transitive dependencies might even leak into your project which can lead to unforeseen side effects during runtime (some would call these side effects bugs 🪳, I call them code spice 🌶).

Most people prefer their code to be without added spice and behave the way that they intended and avoid these unknown side effects, for maven based projects a good way to do that is using the RequireUpperBoundDeps rules of the maven-enforcer-plugin. This plugin usually runs during the validate phase of your build lifecycle and if it happens to stumble upon conflicting dependency versions it gives you a wall of text that mostly just induces eye strain. It also takes a while to parse this wall of for the human eye and brain, alas the meat machines that we are where optimized to look at prettier things.

This CLI tool exists to help you parse that wall of text and outputs the topmost dependency version of the problematic dependency in your pom. The output is in the very new and fancy markup language called XML

Install

Requirements

Rust 🦀

Installation

cargo install mvn-autoenforce

Usage

Run mvn validate | mvn-autoenforce and copy the dependencies to your pom.

About

Enforce upper bounds

Resources

License

Stars

Watchers

Forks

Packages

No packages published