Инструмент сборки Gradle I Современная автоматизация сборки с открытым исходным кодом

Опубликовано: 10 Июля, 2021

Вспомните, какие этапы выполняются при запуске программы Java: программа сначала компилируется, а байт-код создается во время компиляции. Во время выполнения классы загружаются, байт-код проверяется, а затем интерпретатор считывает байт-код и выполняет инструкции.
Как это произошло?
Мы просто нажимаем «Сборка», а затем «Выполнить» или просто «Выполнить» (сборка выполняется автоматически). Вы когда-нибудь задумывались, почему не было явной необходимости давать команды для загрузки классов, создания байт-кодов или связывания и т. Д.? Вот где приходит система автоматизации.
Процитируем: « Build Automation - это процесс автоматизации создания сборки программного обеспечения и связанных процессов, включая компиляцию исходного кода в байт-коды, упаковку двоичного кода и выполнение автоматических тестов ».
Например, мы обычно нажимаем на опцию «Сборка», система сама выполняет все процессы, необходимые для запуска нашего исходного кода, т.е. она автоматически выполняет все задачи (компиляция, загрузка, компоновка, упаковка и т. Д.) И запускает наш код. Существуют различные другие системы автоматизации, такие как Apache Ant и Apache Maven. Каждая такая система следует некоторым соглашениям. Цитата «соглашение, а не конфигурация» очень известна в мире автоматизированных сборок.
Предположим, вы создали проект с большим количеством классов и ресурсов (например, файлов изображений и макетов). Все файлы хранятся в одной папке, и вы передаете этот проект кому-то другому. Этому человеку не будет трудно понять? Таким образом, система сборки следует определенным соглашениям. Как и у каждого проекта должна быть такая структура:

  • Папка src : содержит все классы
  • папка res : содержит все ресурсы
  • Папка манифеста : содержащая конфигурации проекта.

При этом другой человек будет знать, что весь исходный код хранится в папке src, а все ресурсы - в папке res. Точно так же существуют другие соглашения для хранения тестовых файлов и файлов сборки в соответствии с системой сборки, используемой приложением.
Таким образом, мы понимаем смысл утверждения, что «Gradle - это система автоматизации сборки».

  1. Специфический для предметной области язык: мы используем предметно-ориентированные языки для описания задач, связанных с автоматизацией анализа и преобразования исходного кода. Это компьютерный язык, специализированный для конкретной предметной области. Это небольшой выразительный язык, специально разработанный для конкретных задач. Примером может служить HTML для веб-страниц.
    Слово «домен» относится к «области или сфере знаний, влияния или деятельности», т. Е. DSL сосредоточены на определенном типе проблем или областей. Сосредоточение внимания на предметной области дает нам контекст, который определяет логическую структуру, в рамках которой мы можем развивать модели для приложения, то есть с учетом некоторой предметной области мы можем логически подразумевать, какие все свойства и правила должны быть определены для решения проблемы, специфичной для этой области интересов. .
  2. Слово « специфический» дает нам ограниченный контекст и помогает сохранять актуальность и фокусировку.
    Пример: если вы столкнулись с использованием «makefile» в системах Linux, make-файл - это DSL, используемый для определения правил и зависимостей для создания приложения.
    Простота имеет решающее значение для успеха DSL. Человек, знакомый с языковым доменом, должен легко его понять. Мы можем определить зависимости для выполнения конкретной задачи в DSL. Например, если мы создаем DSL для выражения бизнес-правил в области страхования, он должен быть основан на их словаре, то есть должны использоваться такие термины, как ссуда, риск, срок действия, термины, которые люди используют каждый день для общения с другими, чтобы легко понять, развить и поддерживать. Может показаться, что DSL просто задает некоторые дискретные правила, а не дает ощущение программирования.

Groovy
Это объектно-ориентированный язык, который также можно использовать в качестве языка сценариев для платформы Java. Он поддерживает как динамическую, так и статическую типизацию. Он очень похож на java в синтаксическом смысле, но имеет много других вещей. По умолчанию он также включает в себя различные библиотеки.
Установите Groovy в свою систему и попробуйте запустить на консоли несколько кодов Java.

На приведенном выше снимке экрана мы не включали никаких библиотек, а просто напечатали Hello world, как мы это делаем в Java. Согласно спецификациям, в Groovy можно удалить точки с запятой, скобки и т. Д. Обратитесь к официальной документации для этого. Groovy - это язык, лежащий в основе Gradle, и все скрипты в классе представляют собой DSL, реализованные с использованием Groovy.

Основные особенности:

  • Минимизация конфигурации, необходимой для новых проектов: Gradle имеет набор параметров конфигурации по умолчанию, которые автоматически применяются к каждому проекту, который вы создаете в Android Studio. Если вы разрабатываете проект, который не придерживается этих правил конфигурации по умолчанию, Gradle легко настроить.
  • Объявление зависимостей проекта: зависимости могут быть модулями, файлами JAR или библиотеками, и они могут быть расположены либо в локальной файловой системе, либо на удаленном сервере. Если вы использовали Eclipse, вы, должно быть, столкнулись с ситуацией, когда вам необходимо добавить некоторые внешние JAR в ваших приложениях. Вы явно должны пойти, правильно загрузить их в соответствии с требуемой версией и добавить их в переменную classpath. Gradle эффективен в том смысле, что он автоматически разрешает все зависимости сборки, просто указывая необходимые в файлах конфигурации. Он сам скачивает и кеширует в соответствии с совместимой версией.
  • Протестируйте свой проект: Gradle автоматически генерирует тестовый каталог и тестовый APK из тестовых источников вашего проекта и может запускать ваши тесты в процессе сборки.
  • Превосходит все другие системы автоматизации: Gradle построен на основе существующих систем сборки, сочетая в себе лучшие функции таких систем, как Apache Ant и Maven, и устраняет их недостатки. Наиболее характерным из них является то, что он не использует XML. Разработчики называют это устранением шума. Рассмотрим приведенный ниже снимок экрана, на котором показан один файл конфигурации в Apache Maven и Gradle.

Мы видим разницу в длине кода и удобочитаемости. Из-за всех этих функций с некоторыми другими, такими как поддержка нескольких проектов и т. Д., Gradle получает рейтинг 1.

Эта статья предоставлена Ekta Goel . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью с помощью provide.geeksforgeeks.org или отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.