Book Image

Gradle Essentials

By : Abhinandan Maheshwari
Book Image

Gradle Essentials

By: Abhinandan Maheshwari

Overview of this book

Gradle is an advanced and modern build automation tool. It inherits the best elements of the past generation of build tools, but it also differs and innovates to bring terseness, elegance, simplicity, and the flexibility to build. Right from installing Gradle and writing your first build file to creating a fully-fledged multi-module project build, this book will guide you through its topics in a step-by-step fashion. You will get your hands dirty with a simple Java project built with Gradle and go on to build web applications that are run with Jetty or Tomcat. We take a unique approach towards explaining the DSL using the Gradle API, which makes the DSL more accessible and intuitive. All in all, this book is a concise guide to help you decipher the Gradle build files, covering the essential topics that are most useful in real-world projects. With every chapter, you will learn a new topic and be able to readily implement your build files.
Table of Contents (17 chapters)
Gradle Essentials
Credits
About the Authors
Acknowledgments
About the Reviewers
www.PacktPub.com
Preface
Index

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 gentle learning curve...