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

Bundling an application distributable

In the first example, we ran our application by using the java command directly from the command line. Usually, such command-line applications are shipped with scripts to run the application so that the end user need not always write the whole command by hand. Also, while developing, we repeatedly need to run the app. It would be nicer if we could write a task in our build file such that an app can be run in one Gradle invocation.

The good news is that there already exists such a plugin called application, shipped with Gradle, which can do both for us. For this example, we will copy over the hello-test project as hello-app. Let's make simple modifications to our build.gradle as follows:

apply plugin: 'java'
apply plugin: 'application'

mainClassName = ""
run.args = ["Reader"]

repositories {

dependencies {
    testCompile 'junit:junit:4.11'

The second line applies the application plugin to our build. To...