In this chapter, we will analyze the last part of the world of build system tools. Gradle is an open source build-automation system that started with the concepts of Apache Ant and Apache Maven. Instead of the XML form that Apache Maven uses, as you saw in chapter 10, Gradle introduces a domain-specific language (DSL) based on Groovy for declaring the project configuration.
A DSL is a computer language dedicated to addressing a specific application domain. The idea is to have languages whose purpose is to solve problems belonging to a specific domain. In the case of builds, one of the results of applying the DSL idea is Gradle. Groovy is a Java-syntax-compatible object-oriented programming language that runs on the Java Virtual Machine (JVM).
We'll take a look at various aspects of using Gradle to manage building and testing Java applications, with a focus on testing. We have worked with Maven, and you know from chapter 10 that it uses convention over configuration. Gradle also has a series of building conventions that we can follow when we do the build. This allows other developers who are also using Gradle to easily follow our build’s configuration.