Нравится вам Это или нет, Gradle Достигает версии 7.0


Gradle-это инструмент, который всегда вызывает споры среди разработчиков. Давайте посмотрим, что принесет и сломает версия 7.

Я впервые столкнулся с Gradle при разработке на Android, и мое первое впечатление было, что это не самый дружественный инструмент; загадочный синтаксис, противоречивые термины (см. Компиляция против реализации) и своеобразные блоки элементов.

Переход от Groovy к Kotlin DSL-это еще одно свидетельство того, что инструмент имеет корни в Android, и по мере развития платформы так же развивался Gradle. После Android я использовал Gradle в мире Spring Boot world all-Maven, и это действительно противоречило друг другу, временами делая мою жизнь несчастной, когда я жонглировал синтаксисом, плагинами и зависимостями.

После того, как все,наконец, сошлось воедино, я вошел в менталитет “если это сработает, не возись с этим”, опасаясь, что малейшее изменение может сломать мою сборку. В отличие от этого, для такого рода Java-проектов я обнаружил, что Maven легче использовать и понимать из-за его конкретной структуры и более очевидных способов выполнения задач.

Я думаю, что мой случай резонирует в целом, и на самом деле все сводится к высказыванию Брюса Экеля:

“Чтобы что-то делать [в Gradle], вы должны знать все”.

И, конечно, дело в том, что почти каждое обновление версии разрывает связи с прошлым. Я не могу использовать более старую версию Gradle для компиляции проекта, построенного с помощью более новой. Я думаю, вы могли бы сказать, что это решается с помощью оберток, но все же..

В любом случае, только что вышла новая версия 7.0, так что давайте посмотрим, что она приносит и что она ломает.

Прежде всего, он обеспечивает поддержку Java 16. Тогда есть: 

Файловая система следит за изменениями для более быстрой инкрементной сборки

Встроенная поддержка Apple silicon

Groovy 3 в скриптах сборки Groovy DSL

Повышение производительности для инкрементных изменений в проектах Android 

Также. он спонсирует новую функцию под названием “каталоги версий”, которая упрощает управление версиями, поскольку она разделяет версии зависимостей между проектами.

Каталоги версий являются общими и доступны для всех проектов сборки, поэтому их главное преимущество заключается в том, что при введении версии зависимости она реплицируется для каждого проекта.

Каталоги версий являются экспериментальными и могут быть включены путем редактирования настроек.:

enableFeaturePreview(“VERSION_CATALOGS”)

Конечно, как всегда, есть и прорывные изменения: 

Из-за обновления до следующей основной версии Groovy могут возникнуть незначительные проблемы при обновлении до Gradle 7.0.

В Gradle 7 удаляются конфигурации компиляции и среды выполнения. Поэтому вам необходимо перейти к приведенным выше конфигурациям реализации и api. Если вы все еще используете плагин java для библиотеки Java, вам нужно будет вместо этого применить плагин java-библиотеки. 

Есть целое руководство по обновлению с версии 6x до 7.0 и, конечно же, 160 исправлений ошибок.

Это самые важные изменения, но есть гораздо больше, которые можно найти в примечаниях к выпуску 7.0.

Таким образом, в конце концов, версия 7 Gradle необходима для того, чтобы догнать разработки платформы Android, поскольку она по-прежнему в основном ориентирована на Android.

Используете ли вы Gradle pro или Anti, и используете ли вы его также в проектах, не связанных с Android? Оставьте комментарий ниже, чтобы сообщить нам об этом.


Добавить комментарий