Book Image

Gradle Effective Implementations Guide - Second Edition

By : Hubert Klein Ikkink
Book Image

Gradle Effective Implementations Guide - Second Edition

By: Hubert Klein Ikkink

Overview of this book

Gradle is a project automation tool that has a wide range of applications. The basic aim of Gradle is to automate a wide variety of tasks performed by software developers, including compiling computer source code to binary code, packaging binary codes, running tests, deploying applications to production systems, and creating documentation. The book will start with the fundamentals of Gradle and introduce you to the tools that will be used in further chapters. You will learn to create and work with Gradle scripts and then see how to use Gradle to build your Java Projects. While building Java application, you will find out about other important topics such as dependency management, publishing artifacts, and integrating the application with other JVM languages such as Scala and Groovy. By the end of this book, you will be able to use Gradle in your daily development. Writing tasks, applying plugins, and creating build logic will be your second nature.
Table of Contents (18 chapters)
Gradle Effective Implementations Guide - Second Edition
About the Author
About the Reviewer

Creating a custom task

When we create a new task in a build and specify a task with the type property, we actually configure an existing task. The existing task is called enhanced task in Gradle. For example, the Copy task type is an enhanced task. We will configure the task in our build file, but the implementation of the Copy task is in a separate class file. It is good practice to separate the task usage from task implementation. It improves the maintainability and reusability of the task. In this section, we will create our own enhanced tasks.

Creating a custom task in the build file

First, let's see how to create a task to display the current Gradle version in our build by simply adding a new task with a simple action. We have seen these types of tasks earlier in other sample build files. In the following sample build, we will create a new info task:

task info(description: 'Show Gradle version') << { 
    println "Current Gradle version: $project.gradle.gradleVersion" 

When we...