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

Joint compilation

In the preceding examples in this chapter, we declared an interface in Java and implemented it in Groovy and Scala respectively. It was possible because the classes compiled by the java plugin are available to Groovy and Scala classes.

If we want a Java class to have access to Groovy or Scala classes for its compilation, then we must compile the Java source file using the joint compilation supported by the respective plugin. Both the groovy and scala plugins support joint compilation and can compile Java sources.

For referencing Groovy classes in a Java class, the easiest way is to move the corresponding Java source file into src/main/groovy (or in any of the Groovy srcDirs configured for sourceSets), and the Groovy compiler makes Groovy classes available to the Java class while compilation. The same goes for Scala joint compilation. We can put the Java files, which need Scala classes for their compilation, in any of the Scala srcDirs (src/main/scala by default).