Book Image

Gradle Essentials

By : Abhinandan Maheshwari
Book Image

Gradle Essentials

By: 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
Credits
About the Authors
Acknowledgments
About the Reviewers
www.PacktPub.com
Preface
Index

Building Scala projects


Following the last section, most of this section would be very predictable from the application build's standpoint. So let's quickly go through the gist of it. The directory structure is as follows:

qotd-scala
├── build.gradle
└── src
    ├── main
    │   ├── java
    │   │   └── com/packtpub/ge/qotd
    │   │                       └── QotdService.java
    │   └── scala
    │       └── com/packtpub/ge/qotd
    │                           └── ScalaQotdService.scala
    └── test
        └── scala
            └── com/packtpub/ge/qotd
                                └── ScalaQotdServiceTest.scala

All Scala source files are read from src/main/scala and src/test/scala, unless configured using sourceSets. This time, the only plugin that we need to apply is the scala plugin, which just like the groovy plugin, implicitly applies the java plugin to our project. Let's write the build.gradle file for this project:

apply plugin: 'scala'

repositories {
  mavenCentral()
}

dependencies...