Now that we are familiar with the build script syntax, we are prepared to handle more complex project structures. In this chapter, we will focus on builds spanning across multiple projects, their interdependencies, and many more things in between.
As the projects code base grows, many times, it is desirable to split it into multiple modules based on layers, responsibilities, artifacts produced, or sometimes even depending on development teams, to effectively break the work down. Whatever is the reason, the reality is big projects are broken down into smaller subprojects sooner or later. Also, a build tool such as Gradle is completely capable of handling the complexity.