google / google/error-prone

Mandatory Maven Wrapper: Overhead of Version Drift vs. Stability Benefits

Open
#5,421 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.