Gradle is an open-source project automation tool, which is an evolution of the concepts used in Apache Ant and Apache Maven. Instead of traditional XML, Gradle uses a domain-specific language based on Groovy for project configuration. Gradle intelligently determines which parts of a build tree are up to date, and executes only those parts that are needed. This process allows builds to be smarter, faster, and more efficient because it eliminates redundancies in the build phase.

The OpenEdge DevOps Framework provides Gradle plugins to evolve the way ABL applications are built. Some of the Gradle terminologies and concepts that are used frequently across this guide are covered in the following Basic Concepts topic. For more information about Gradle, see the Gradle documentation.

Basic concepts

The following basic Gradle terminologies and concepts are helpful when using the OpenEdge DevOps Framework:
  • Plugin—Gradle plugins add task objects and conventions to your Gradle environment.

    They are the primary method of extending capabilities using Gradle.

  • Task—A Gradle task is the smallest piece of work for a build. For example, compiling classes or generating ABL doc.

    It is the building block of Gradle functionality.

  • Task type—Defines the blueprint of a task.

    Some tasks may require configurations like input or output parameters to provide certain capability. The blueprint for these parameters is defined by the task type for the piece of work that can be set while creating a task.

  • Task dependencies—Gradle tasks can depend on other tasks.
  • Extension—Plugins can add Extension that allows you to configure several settings and properties for the plugins.

    Task types use these settings and properties as global configurations to set some of their properties.

  • Groovy DSL—You can write Gradle build scripts using a Groovy or Kotlin DSL.

For more information about these and other Gradle components, see Gradle documentation.