Gradle - Обзор

"Gradle is an open source build automation system"

Ant и Maven достигли значительного успеха на рынке JAVA. Ant был первым инструментом сборки, выпущенным в 2000 году, и он разработан на основе идеи процедурного программирования. Позже он был улучшен с возможностью принимать плагины и управление зависимостями по сети с помощью Apache-IVY. Основным недостатком является XML как формат для написания сценариев сборки, иерархичность не подходит для процедурного программирования, а XML имеет тенденцию становиться неуправляемо большим.

Maven представлен в 2004 году. Он имеет много улучшений, чем ANT. Он меняет свою структуру и продолжает использовать XML для написания спецификаций сборки. Maven полагается на соглашения и может загружать зависимости по сети. Основное преимущество maven - это его жизненный цикл. При непрерывном следовании одному и тому же жизненному циклу для нескольких проектов. За это приходится платить гибкостью. Maven также сталкивается с некоторыми проблемами в управлении зависимостями. Он плохо справляется с конфликтами между версиями одной и той же библиотеки, и сложные настраиваемые сценарии сборки на самом деле сложнее написать в maven, чем в ANT.

Наконец, в 2012 году появился Gradle. Gradle обладает некоторыми эффективными функциями обоих инструментов.

Особенности Gradle

Ниже приводится список функций, которые предоставляет Gradle.

  • Declarative builds and build-by-convention- Gradle доступен с отдельным предметным языком (DSL) на основе языка Groovy. Gradle предоставляет элементы декларативного языка. Эти элементы также обеспечивают поддержку сборки по соглашению для Java, Groovy, OSGI, Web и Scala.

  • Language for dependency based programming - Декларативный язык находится на вершине графа задач общего назначения, который вы можете полностью использовать в своей сборке.

  • Structure your build- Наконец, Gradle позволяет применять общие принципы проектирования к вашей сборке. Это даст вам идеальную структуру для сборки, так что вы сможете разработать хорошо структурированную и легко поддерживаемую, понятную сборку.

  • Deep API - Используя этот API, он позволяет вам контролировать и настраивать его конфигурацию и поведение выполнения до его ядра.

  • Gradle scales - Gradle может легко повысить их продуктивность, от простых сборок отдельных проектов до огромных корпоративных сборок с несколькими проектами.

  • Multi-project builds- Gradle поддерживает многопроектные сборки и частичные сборки. Если вы создаете подпроект, Gradle позаботится о создании всех подпроектов, от которых он зависит.

  • Different ways to manage your builds - Gradle поддерживает различные стратегии управления вашими зависимостями.

  • Gradle is the first build integration tool- Gradle полностью поддерживает ваши задачи ANT, инфраструктуру репозитория Maven и lvy для публикации и получения зависимостей. Gradle также предоставляет конвертер для преобразования Maven pom.xml в скрипт Gradle.

  • Ease of migration- Gradle может легко адаптироваться к любой вашей структуре. Поэтому вы всегда можете разработать свою сборку Gradle в той же ветке, где вы можете создавать живой скрипт.

  • Gradle Wrapper- Gradle Wrapper позволяет выполнять сборки Gradle на машинах, на которых Gradle не установлен. Это полезно для непрерывной интеграции серверов.

  • Free open source - Gradle - это проект с открытым исходным кодом, работающий под лицензией Apache Software License (ASL).

  • Groovy- Скрипт сборки Gradle написан на Groovy. Весь дизайн Gradle ориентирован на использование как язык, а не как жесткую структуру. Groovy позволяет вам написать собственный сценарий с некоторыми абстракциями. Весь API Gradle полностью разработан на языке Groovy.

Почему Groovy?

Полный API Gradle разработан с использованием языка Groovy. Это преимущество внутреннего DSL перед XML. Gradle - это универсальный инструмент сборки по своей сути; его основное внимание уделяется проектам Java. В таких проектах члены команды будут хорошо знакомы с Java, и лучше, чтобы сборка была максимально прозрачной для всех членов команды.

Для построения фреймворка лучше подходят такие языки, как Python, Groovy или Ruby. Почему был выбран Groovy, потому что он предлагает наибольшую прозрачность для людей, использующих Java. Базовый синтаксис Groovy такой же, как у Java. Groovy предоставляет намного больше возможностей.