🎉 Read the follow-up to Herding Elephants, an overview of how Square, a large build, stays performant in Stampeding Elephants. 🎉 close

Configuring Gradle Build Tool with Kotlin

Getting started with the Gradle Build Tool using Kotlin Configuration.


The Gradle Build Tool is highly customizable, allowing you to define in detail various aspects of how to build your software project. Configuring Gradle Build Tool with Kotlin is aimed at developers and build engineers who want to learn how to define build configurations in Gradle using the Kotlin DSL.

Using the Kotlin DSL provides major benefits such as better editor integration and type safety. We will cover how to configure major aspects of your build including defining plugins and dependencies as well as authoring custom tasks using Kotlin.


1.5 hours training session


This class is designed for developers and build engineers who want to learn how to configure Gradle using the Kotlin DSL.


No prior experience with Gradle Build Tool is required, though it is recommended.

  • Install the latest version of Gradle Build Tool along with at least Java 1.8
  • Recommended: IntelliJ community edition
  • Some experience with software development
  • Experience with Kotlin is a bonus but not required


  1. Understand main configuration aspects of Gradle Build Tool
  2. Learn how to configure Gradle using Kotlin

Course Outline

  • About Gradle Build Tool
    • Build automation concepts
  • Build Configuration
    • Overview of Gradle configuration layout
    • Creating configuration using Gradle init
    • Opening in IDE
    • Gradle wrapper
  • Plugins
    • Plugin types
    • Java and Kotlin plugins
    • SourceSets
  • Tasks
    • Task categories
    • Inputs and outputs
    • Dependency and ordering
    • Task outcomes
    • Authoring custom tasks
  • Dependency Management
    • Types of dependencies
    • Repository
    • Modules
    • Configuration of dependencies
    • Transitive dependencies
    • Module versioning
    • Dynamic and changing versions
    • Conflict resolution
  • Toolchains