Dependency management in the real world
Declarative dependency management has been well established on the JVM platform through tools such as Apache Ivy and Apache Maven. This kind of dependency management can put rigour and structure around the sharing of software assets and help provide insight into exactly what libraries are going in to your software. However, it doesn't take long to encounter scenarios with declarative dependency management as we know it that we just do not have the right tools to deal with. Not only can difficult dependency management issues be hard to deal with, they can be hard to even understand. Gradle represents the next generation of dependency management and strives to put control of the dependency graph back in the hands of the build user, even for the non standard situations.
This session is all about how you can use some of the new and existing Gradle features to solve interesting dependency management problems, such as: preventing bad version from corrupting the dependency tree, replacing a rogue library with a blessed one, imposing consistent versions on libraries that are designed to be used together, and managing dependency versions across the organization.
About Szczepan Faber
- Humble maker of great tools for engineers
- Founder of Mockito framework, member of Shipkit team
- Core engineer of Gradle 1.x and 2.x.
- Tech Lead of Development Tools at LinkedIn
- Obsessed with software quality (via clean tests!!!) and continuous delivery (via Gradle automation!!!)
- User of GitHub, Twitter, and LinkedIn