Ban Guava as a transitive dependency
- Dominant language
- Java
- Stars
- 8.7k
- Forks
- 4.7k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 196
Description
Leaks of Guava dependencies to users can cause conflicts since provided dependencies may rely on different versions of Guava.
Configure Maven enforcer plugin to ban Guava as a transitive dependency.
This will force our modules to explicitly declare all Guava dependencies (And we'll shade and relocate them).
Consider using [Maven Enforcer Plugin](http://maven.apache.org/enforcer/enforcer-rules/banTransitiveDependencies.html)
Imported from Jira [BEAM-1706](https://issues.apache.org/jira/browse/BEAM-1706). Original Jira may contain additional context.
Reported by: aviemzur.
Contributor guide
Research direction
Start in Apache Beam's Maven build configuration and review the Maven Enforcer Plugin banTransitiveDependencies rule referenced in the issue. Trace the modules that currently depend on Guava transitively and verify that enforcement requires explicit declarations and supports the intended shading and relocation; done means the build rejects transitive Guava dependencies without breaking required module builds.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100