Mandatory Maven Wrapper: Overhead of Version Drift vs. Stability Benefits
- Dominant language
- Java
- Stars
- 7.2k
- Forks
- 820
- Avg merge
- 5h 9m
- Merged PRs (30d)
- 50
Description
This project is currently **not** using the Maven Wrapper. As a result, it incurs ongoing overhead from supporting and debugging builds across **different Maven versions** used by developers, CI systems, and other environments.
Relying on arbitrarily installed Maven versions leads to version drift, subtle behavior differences, and non-reproducible builds. This instability creates maintenance overhead in the form of environment-specific failures, harder-to-diagnose issues, and additional coordination effort.
Many major open-source projects—including other Google projects such as Guava—address this by adopting the Maven Wrapper. This follows the *convention over configuration* principle and enforces a single, known Maven version everywhere.
Using the Maven Wrapper reduces version-related overhead by trading a small, one-time setup cost for long-term gains in reproducibility, predictability, and build stability.
**Reference:**
- https://github.com/google/error-prone/pull/5343
- https://github.com/google/guava/blob/master/mvnw
Contributor guide
Assessment
This issue has not been assessed yet.