Gradle

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Gradle
Gradle logo small.png
Тип

Автоматизация сборки

Разработчик

Hans Dockter, Adam Murdoch, Szczepan Faber, Daz DeBoer, Peter Niederwieser, Luke Daley, Steve Appling, Rene Groeschke[1]

Написана на

Java, Groovy, Kotlin

Операционная система

Кроссплатформенное программное обеспечение

Аппаратная платформа

Java Virtual Machine

Последняя версия

3.0 (15 августа 2016)[2]

Состояние

активное

Лицензия

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 sourceSets.main.java.srcDirs = ['src/java']

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

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

Литература[править | править вики-текст]

  • 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.

Ссылки[править | править вики-текст]