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
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface

Using the PMD plugin


Another tool to analyze the Java source code is PMD. It finds unused variables, empty catch blocks, unnecessary object creation, and so on. We can configure our own rule sets and even define our own rules. To use PMD with Gradle, we have to apply the PMD plugin to our build. After we have added the plugin, we have the pmdMain and pmdTest tasks already installed. These tasks will run PMD rules for the main and test source sets. If we have a custom source set, then the plugin adds a pmd<SourceSet> task as well. These tasks are also dependency tasks of the check task. So if we invoke the check task, all the pmd tasks are executed as well.

This plugin only defines a structure to work with PMD, but it doesn't contain the actual PMD library dependencies. Gradle will download the PMD dependencies the first time that we invoke the pmd tasks. We have to define a repository that contains the PMD libraries, such as the Bintray JCenter repository or a corporate intranet repository...