Chapter 4. Demystifying Build Scripts
In the first three chapters, we saw many interesting functionalities that Gradle can add to our builds merely by adding a few lines in the build file. However, this was just the tip of the iceberg. What we explored was mostly the tasks that were added by plugins shipped with Gradle. From our experiences, we know that project builds are never this simple. They will have customizations no matter how hard we try to avoid them. That's why the ability to add custom logic is extremely important for a build tool.
Also, the beauty of Gradle lies exactly there. It doesn't come into our way whenever we decide to either extend the existing functionality or deviate completely from the convention and want to do something unconventional. We are not required to write the XML soup or the bunch of Java code if we wish to add some logic to our build. We can create our own tasks or extend the existing tasks to do more.
This flexibility comes with a very...