Book Image

Gradle Essentials

By : Kunal Dabir, Abhinandan Maheshwari
Book Image

Gradle Essentials

By: Kunal Dabir, 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
About the Authors
About the Reviewers

Build phases

A Gradle build follows a very simple life cycle on every invocation. The build passes through three stages: initialization, configuration, and execution. When a gradle command is invoked, not all the code written in our build file executes sequentially from top to bottom. Only the blocks of code that are relevant to the current phase of the build are executed. Also, the build phase's order determines when the block of code will execute. An example is the task configuration versus task execution. Understanding of these phases is important to correctly configure our build.


Gradle first figures out whether the current project has child projects or if it is the only project in the build. For multiprojects build, Gradle figures out which projects (or sub-module, as many prefer to call them) have to be included in the build. We will see multiproject builds in the next chapter. Gradle then creates a Project instance for the root project and for each of the child projects...