Gradle Concepts: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 8: Line 8:


=Overview=
=Overview=
Gradle is a general-purpose build tool, which can build pretty much anything its [[#Configuration_Scripts|configuration scripts]] declare. It is primarily used to build Java and Groovy, but it can build other languages as well. The configuration scripts are written in the ''Gradle build language'', which is a DSL and a Groovy extension. A build is configured by three types of configuration scripts, which together express build requirements and inform the build runtime: build scripts, a settings script and an init script. Each of those scripts contains executable statements and script blocks, which are a special case of executable statement, consisting in a method invocation on a closure. The logic expressed in a specific script applies to its delegate object. Though syntax is similar for all three scripts, specific blocks must make sense with the delegate object  More details in [[Gradle Concepts - Script Structure]].
=Configuration Scripts=
* Build script structure: statements, blocks. A statement is .... A block is a method which takes a closure as an argument. Configuration closure. It configures the associated delegate object as it executes. There is a relatively low number of top-level blocks:
** allprojects{}
** artifacts{}
* Gradle Concepts Build Lifecycle. Configuration scripts and their delegate object.
* Core Types:
** Settings. https://docs.gradle.org/current/dsl/org.gradle.api.initialization.Settings.html
** Project. https://docs.gradle.org/current/dsl/org.gradle.api.Project.html
** Gradle. https://docs.gradle.org/current/dsl/org.gradle.api.invocation.Gradle.html
** Task https://docs.gradle.org/current/dsl/org.gradle.api.Task.html
** Configuration https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.Configuration.html
* A build consists of executing a series of ''tasks'' in succession.
* Extensions, as in publishing extension.
* Go through the lifecycle without plugins. Understand. Then introduce essential plugins.
* Most of Gradle's power comes from external plugins
* Java plugin.
* Maven publishing plugin.

Revision as of 17:55, 17 May 2018

External

Internal

Overview

Gradle is a general-purpose build tool, which can build pretty much anything its configuration scripts declare. It is primarily used to build Java and Groovy, but it can build other languages as well. The configuration scripts are written in the Gradle build language, which is a DSL and a Groovy extension. A build is configured by three types of configuration scripts, which together express build requirements and inform the build runtime: build scripts, a settings script and an init script. Each of those scripts contains executable statements and script blocks, which are a special case of executable statement, consisting in a method invocation on a closure. The logic expressed in a specific script applies to its delegate object. Though syntax is similar for all three scripts, specific blocks must make sense with the delegate object More details in Gradle Concepts - Script Structure.

Configuration Scripts

  • Build script structure: statements, blocks. A statement is .... A block is a method which takes a closure as an argument. Configuration closure. It configures the associated delegate object as it executes. There is a relatively low number of top-level blocks:
    • allprojects{}
    • artifacts{}
  • Gradle Concepts Build Lifecycle. Configuration scripts and their delegate object.
  • A build consists of executing a series of tasks in succession.
  • Extensions, as in publishing extension.
  • Go through the lifecycle without plugins. Understand. Then introduce essential plugins.
  • Most of Gradle's power comes from external plugins
  • Java plugin.
  • Maven publishing plugin.