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

The first plugin

To make the plugin reusable for all the other projects, Gradle allows you to separate the plugin code and package it in a JAR file. You can include this JAR file in any projects in which you want to reuse this functionality. You can create the standalone project in Java or Groovy. We will proceed with Groovy. You can use any editor (Eclipse, NetBeans, or Idea) to create a plugin. Since our main purpose is to show you how to create a standalone plugin, we will not go into the details of the editor. We will use a simple text editor. To proceed with the standalone plugin, separate the above buildSrc code into an independent directory. You can name it CustomPlugin. So, the directory structure will be as follows:

│   build.gradle


You might be surprised to know why we are creating a build.gradle file here. With this build.gradle, we will package...