Gradle
Gradle — система автоматичного збирання, яка далі розвиває принципи, закладені в Apache Ant та Apache Maven і використовує предметно-орієнтовану мову (DSL) на основі мови Groovy замість традиційної XML-подібної форми представлення конфігурації проєкту. Для визначення порядку виконання завдань Gradle використовує орієнтований ациклічний граф ("DAG").
На відміну від Apache Maven, заснованого на концепції життєвого циклу проєкту, і Apache Ant, в якому порядок виконання задач (targets) визначається відношеннями залежності (depends-on), Gradle використовує спрямований ациклічний граф для визначення порядку виконання завдань.
Gradle було розроблено для побудови мультипроєктів, які можуть розростатися, і підтримує інкрементальне збирання. Вона визначає, які частини було змінено, і виконує тільки ті задачі, які залежать від цих частин.
Основні плагіни призначені для розробки і розгортання Java, Groovy і Scala додатків, але готуються плагіни і для інших мов програмування.
Розглянемо приклад проєкту, в якому використовується стандартна структура каталогів Maven для вихідних кодів і ресурсів. Така структура містить наступні каталоги:
- src/main/java,
- src/main/resources,
- src/test/java,
- src/test/resources.
build.gradle
apply plugin: 'java'
Результат виконання команди gradle build для збірки проєкту
> gradle build
:compileJava
:processResources
:classes
:jar
:assemble
:compileTestJava
:processTestResources
:testClasses
:test
:check
:build
BUILD SUCCESSFUL
Java плагін емулює життєві цикли Maven, у вигляді завдань в спрямованому ациклічному графі залежностей для входів і виходів кожного завдання. У цьому прикладі виконання завдання build залежить від результату виконання завдань check і assemble. Також завдання check залежить від test, а assemble від jar.
Gradle також дозволяє використовувати для проєктів структуру каталогів, що відрізняється від конвенції Maven. У наступному прикладі буде розглянуто проєкт, в якому вихідний код знаходиться в каталозі src / java, а не в src / main / java.
build.gradle
apply plugin: 'java'
sourceSets {
main {
java {
srcDirs = ['src/java']
}
}
}
- Офіційний сайт
- Overview
- Gradle Forums [Архівовано 15 березня 2015 у Wayback Machine.]
- User Guides
- Standard plugins that ship with Gradle [Архівовано 8 квітня 2015 у Wayback Machine.]
- Java Quickstart Guide [Архівовано 8 квітня 2015 у Wayback Machine.]
- Groovy Quickstart Guide
- Examples of Ant usage [Архівовано 18 квітня 2015 у Wayback Machine.]
- Gradleware for commercial support
- [1] [Архівовано 14 жовтня 2016 у Wayback Machine.] of June 11-12th, 2015 in Santa Clara
- Gradle presentation at San Francisco JUG на YouTube by Gradle founder Hans Dockter
- Breaking Open: Gradle - An interview about Gradle and Gradleware, its history, motivation and challenges на YouTube With Gradle founder Hans Dockter and Aleksandar Gargenta
- Gradle Presentation [Архівовано 15 квітня 2015 у Wayback Machine.]
- Getting Started by Schuchert
- Prototypes for gradle project [Архівовано 10 вересня 2015 у Wayback Machine.]
- ↑ а б https://github.com/gradle/gradle/graphs/contributors?from=2008-03-09&to=2023-01-25&type=c
- ↑ а б https://github.com/gradle/gradle/graphs/contributors?from=2008-03-09&to=2023-01-25&type=a
- ↑ The gradle Open Source Project on Open Hub: Languages Page — 2006.
- ↑ The gradle Open Source Project on Open Hub: Licenses Page — 2006.