Dependency Management with Gradle 6.0
summary
Gradle 6.0 shows concrete recipes: avoid dynamic versions like 1.+ or + because they break reproducibility; prefer explicit versions, use resolutionStrategy to fail or enforce a choice, and use dependencySubstitution to replace incoming coordinates with local projects or fixed artifacts. Manage transitive drift by publishing a platform (virtual platform / enforcedPlatform or constraints) that centralizes versions so all modules resolve the same Jackson, Guava, etc., preventing build breakage and hidden vulnerabilities.
AI-written summary · about
chapters (14)
- 0:00Introduction to Gradle 6.0
- 1:22Why dependency management matters
- 4:42Challenges with dependency versions
- 7:05Introducing dependency constraints
- 17:03Dynamic versions and reproducibility
- 22:22Resolution strategies in Gradle
- 27:13Dependency substitution explained
- 34:32Customizing dependency resolution
- 41:22Handling transitive dependencies
- 44:19Managing large project dependencies
- 48:18Dependency qualifiers and variants
- 51:50Virtual platforms in Gradle
- 55:02Enforcing dependency versions
- 58:56Q&A and closing discussion
related talks
36mThe future of dependency management, seen from 2022
41mThe future of dependency management, seen from 2022
42mDependency Updates: Before and After
43mManaging Dependencies for Spring Projects with Gradle
01h 59mGradle: Give Your Build Some Love and It Will Return It!
36mNasty Dependencies: Surviving and fixing bugs in 3rd-party libra…
37mMaven v Gradle: Dawn of Project Automation
20mManaging Library Versions with Gradle BOM Import
