Large, complex projects often consist of multiple modules based on particular functionality and logical boundaries. The benefits are obvious: better maintainability, less coupling and high cohesion of code. Gradle provides powerful support for configuring and executing modularized projects. In the course of this session, we will discuss the state of the art techniques for tackling highly-customized multi-project builds. Furthermore, this talk will give an outlook on the features to come.
With the help of demos, we'll focus on the following topics:
* Different approaches for structuring multi-project builds
* Adapting to legacy project structures
* Creating projects dynamically as part of the settings logic
* Externalizing Settings logic into a plugin
* Declaring project dependencies
* Switching between project and artifact dependencies
* Dependency substitution rules
* IDE support
* Optimizing multi-project builds for performance