Gradle — система автоматичного збирання, яка далі розвиває принципи, закладені в Apache Ant та Apache Maven і використовує предметно-орієнтовану мову (DSL) на основі мови Groovy замість традиційної XML-подібної форми представлення конфігурації проєкту. Для визначення порядку виконання завдань Gradle використовує орієнтований ациклічний граф ("DAG").

На відміну від Apache Maven, заснованого на концепції життєвого циклу проєкту, і Apache Ant, в якому порядок виконання задач (targets) визначається відношеннями залежності (depends-on), Gradle використовує спрямований ациклічний граф для визначення порядку виконання завдань.

Gradle було розроблено для побудови мультипроєктів, які можуть розростатися, і підтримує інкрементальне збирання. Вона визначає, які частини було змінено, і виконує тільки ті задачі, які залежать від цих частин.

Основні плагіни призначені для розробки і розгортання Java, Groovy і Scala додатків, але готуються плагіни і для інших мов програмування.

Приклад проєкту для Java Розглянемо приклад проєкту, в якому використовується стандартна структура каталогів Maven для вихідних кодів і ресурсів. Така структура містить наступні каталоги:

src/main/java, src/main/resources, src/test/java, src/test/resources.

build.gradleapply plugin: 'java'Результат виконання команди gradle build для збірки проєкту> gradle build :compileJava :processResources :classes :jar :assemble :compileTestJava :processTestResources :testClasses :test :check :build

BUILD SUCCESSFULJava плагін емулює життєві цикли Maven, у вигляді завдань в спрямованому ациклічному графі залежностей для входів і виходів кожного завдання. У цьому прикладі виконання завдання build залежить від результату виконання завдань check і assemble. Також завдання check залежить від test, а assemble від jar.

Gradle також дозволяє використовувати для проєктів структуру каталогів, що відрізняється від конвенції Maven. У наступному прикладі буде розглянуто проєкт, в якому вихідний код знаходиться в каталозі src / java, а не в src / main / java.

build.gradleapply plugin: 'java'

sourceSets { main { java { srcDirs = ['src/java']

Посилання

Overview Gradle Forums User Guides Standard plugins that ship with Gradle Java Quickstart Guide Groovy Quickstart Guide Examples of Ant usage Gradleware for commercial support of June 11-12th, 2015 in Santa Clara by Gradle founder Hans Dockter With Gradle founder Hans Dockter and Aleksandar Gargenta Gradle Presentation Getting Started by Schuchert Prototypes for gradle project