Gradle

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Gradle
Gradle logo small.png
Тип Автоматизация сборки
Разработчик Gradle Inc.
Написана на Java, Groovy, Kotlin
Операционная система Кроссплатформенное программное обеспечение
Первый выпуск 2007
Аппаратная платформа Java Virtual Machine
Последняя версия 4.6 [1] (28 февраля 2018)
Состояние активное
Лицензия Apache 2.0 license
Сайт gradle.org
Commons-logo.svg Gradle на Викискладе

Gradle — система автоматической сборки, построенная на принципах Apache Ant и Apache Maven, но предоставляющая DSL на языке Groovy вместо традиционной XML-образной формы представления конфигурации проекта.

В отличие от 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.gradle

1 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

1 apply plugin: 'java'
2 
3 sourceSets {
4     main {
5         java {
6             srcDirs = ['src/java']
7         }
8     }
9 }

См. также[править | править код]

Примечания[править | править код]

Литература[править | править код]

  • Muschko, B. and Dockter, H. Gradle in Action. — Manning Publications Company, 2013. — 456 p. — ISBN 9781617291302.
  • Berglund, T. Gradle Beyond the Basics. — O'Reilly Media, 2013. — 80 p. — ISBN 9781449373825.
  • Berglund, T. and McCullough, M. Building and Testing with Gradle. — O'Reilly Media, 2011. — 110 p. — ISBN 9781449304638.
  • Kousen, K. Gradle for Android. — O'Reilly Media, Incorporated, 2015. — 120 p. — ISBN 9781491947029.
  • Ikkink, H. K. Gradle Effective Implementation Guide. — Packt Publishing, 2012. — 350 p. — ISBN 9781849518116.

Ссылки[править | править код]