Gradle: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Не правильная версия в ссылке на release notes
м релиз 4.0.1
Строка 1: Строка 1:
{{Карточка программы
{{Карточка программы
| первый выпуск = 2007
| первый выпуск = 2007
| последняя версия = 3.1 <ref>[https://docs.gradle.org/3.1/release-notes Gradle 3.1 Release Notes<!-- Заголовок добавлен ботом -->]</ref>
| последняя версия = 4.0.1 <ref>[https://gradle.org/releases Релизы Gradle]</ref>
| дата последней версии = [[20 Февраля]] [[2017]]
| дата последней версии = [[7 июля]] [[2017]]
| name = Gradle
| name = Gradle
| logo =
| logo =

Версия от 08:28, 17 июля 2017

Gradle
Логотип программы Gradle
Тип Автоматизация сборки
Разработчики Hans Dockter, Adam Murdoch, Szczepan Faber, Daz DeBoer, Peter Niederwieser, Luke Daley, Steve Appling, Rene Groeschke[1]
Написана на Java, Groovy, Kotlin
Операционная система Кроссплатформенное программное обеспечение
Первый выпуск 2007
Аппаратная платформа Java Virtual Machine
Последняя версия 4.0.1 [2] (7 июля 2017)
Репозиторий github.com/gradle/gradle
Состояние активное
Лицензия Apache 2.0 license
Сайт gradle.org
Логотип Викисклада Медиафайлы на Викискладе

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

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']
        }
    }
}

См. также

Примечания

Литература

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

Ссылки