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

Gradle – an object-oriented build tool


If we were to think of a build system in an object-oriented way, the following classes will immediately come to our minds:

  • A project that represents a system that is being built

  • A task that encapsulates pieces of build logics that need to be performed

Well, we are lucky. As we might expect, Gradle creates objects of both project and task types. These objects are accessible in our build script for us to customize. Of course, the underlying implementation is non-trivial and the API is very sophisticated.

A project object is a central piece of API that is exposed to and configured via the build scripts. A project object is available in the script such that the methods without object reference are intelligently invoked on the project object. We have just seen an example of this in the last section. Most of the build script syntax can be understood by just reading the project API.

The task objects are created for each task declared directly in the build file...