Что нового в этой версии:
Новые функции, улучшения производительности и удобства использования: Улучшения
кэша конфигурации:
— Кэш конфигурации сокращает время сборки за счет кэширования результата этапа настройки и повторного использования его для последующих сборок. Статус этой функции, ставшей стабильной, может значительно повысить производительность сборки.
Защита кеша конфигурации:
— Чтобы снизить риск случайного раскрытия конфиденциальных данных, Gradle теперь шифрует кеш конфигурации. Gradle будет прозрачно генерировать секретный ключ для конкретной машины по мере необходимости, кэшировать его в домашнем каталоге пользователя Gradle и использовать его для шифрования данных в кешах, специфичных для проекта.
— По умолчанию кеш конфигурации Gradle находится в папке .gradle/configuration-cache в каталоге вашего проекта.
— Каждая запись кэша содержит информацию о наборе задач для запуска, а также информацию об их конфигурации и зависимостях.
— Однако в зависимости от реализации задачи или способа ее настройки подключаемым модулем или скриптом сборки ее конфигурация может содержать конфиденциальную информацию. Крайне важно обеспечить безопасность этой информации.
Чтобы еще больше повысить безопасность, убедитесь, что:
— папка .gradle/configuration-cache не фиксируется системой управления версиями или не раскрывается в средах CI;
— защитить домашний каталог пользователя Gradle.
Поддержка проверки зависимостей:
— Кэш конфигурации теперь полностью поддерживает проверку зависимостей. Изменения в связанных файлах (файлах набора ключей или файле Verification-metadata.xml) правильно обнаруживаются и при необходимости делают недействительным кэш конфигурации.
Поддержка репозиториев на основе файловой системы:
— Кэш конфигурации теперь полностью поддерживает репозитории Ivy и Maven на основе файловой системы. В частности, в этом выпуске добавлена поддержка динамических зависимостей. Предположим, что в скрипте сборки объявлена динамическая зависимость. В этом случае изменения в зависимости в репозитории на основе файловой системы теперь делают недействительным кэш конфигурации для получения обновленной версии.
Расширенная совместимость с основными подключаемыми модулями:
— Плагин публикации Ivy и подключаемый модуль подписи теперь совместимы с кешем конфигурации.
— Текущее состояние поддержки кеша конфигурации для всех основных плагинов Gradle можно найти в документации по кешу конфигурации.
Поддержка лямбда-выражений Java:
теперь Gradle может восстанавливать предоставленные пользователем лямбда-выражения из кеша конфигурации. Использование анонимных классов для реализации интерфейсов единого абстрактного метода (SAM) больше не требуется. Это также относится к коду Kotlin: больше нет необходимости настраивать компилятор Kotlin для генерации классов вместо лямбда-выражений во время преобразования SAM.
— В этом выпуске также улучшены отчеты об ошибках для лямбда-выражений, которые захватывают неподдерживаемые типы, такие как конфигурация.
Улучшенные отчеты об ошибках для замыканий Groovy:
— В этом выпуске улучшены отчеты об ошибках неподдерживаемых вызовов методов в замыканиях Groovy. Например, действие doFirst/doLast использует метод или свойство проекта, которые не поддерживаются кешем конфигурации
. ошибка более точна.
Улучшения обнаружения входных данных конфигурации.
Кэш конфигурации должен обнаруживать, когда логика сборки обращается к «внешнему миру» во время настройки (например, чтение файлов или переменных среды), чтобы сделать кеш недействительным при изменении доступной информации. Каждый последний выпуск Gradle добавлял новые возможности обнаружения, и этот выпуск не является исключением. Теперь Gradle обнаруживает:
— Методы класса java.io.File, используемые для проверки существования файла и чтения содержимого каталога.
— Методы класса java.nio.files.File, используемые для открытия файлов для чтения и проверки существования файла.
— Вспомогательные методы Kotlin и Groovy, используемые для чтения содержимого файла.
Улучшения Kotlin DSL:
— Kotlin DSL от Gradle предоставляет синтаксис, альтернативный Groovy DSL, с расширенными возможностями редактирования в поддерживаемых IDE — превосходную помощь по содержимому, документацию по рефакторингу и многое другое.
Экспериментальное простое назначение свойств в скриптах Kotlin DSL:
— В качестве дополнительной функции теперь можно использовать оператор = для присвоения значений типам свойств в скриптах Kotlin в качестве альтернативы методу set(). Это уменьшает многословность Kotlin DSL, когда для настройки задач и расширений используются ленивые типы свойств. Это также делает поведение Kotlin DSL совместимым с поведением Groovy DSL, где всегда было доступно использование = для назначения ленивых свойств.
— Ленивое назначение свойств для скриптов Kotlin является экспериментальной опцией. Он включается путем добавления systemProp.org.gradle.unsafe.kotlin.assignment=true в файл gradle.properties.
Доступ к каталогу версий для плагинов в блоке plugins {}:
— Аксессоры каталога версий для псевдонимов плагинов в блоке plugins {} больше не отображаются как ошибки в редакторе скриптов IntelliJ IDEA и Android Studio Kotlin. Если вы использовали обходной путь для этого раньше, см. соответствующий раздел в руководстве по обновлению.
Полезные предупреждения об устаревании и ошибки при компиляции скриптов Kotlin:
— Gradle Kotlin DSL-скрипты компилируются Gradle на этапе настройки вашей сборки.
— Предупреждения об устаревании, обнаруженные компилятором Kotlin, теперь отображаются в консоли при компиляции скриптов сборки. Это упрощает обнаружение использования устаревших элементов в сценариях сборки.
— Более того, ошибки компиляции скриптов Kotlin DSL теперь всегда сообщаются в том порядке, в котором они появляются в файле. Это упрощает определение первой основной причины сбоя при компиляции скрипта.
Упрощен доступ к расширениям объекта Gradle:
— Тип Gradle теперь объявляет, что он ExtensionAware. Это позволяет получить доступ к расширениям без приведения к ExtensionAware из Kotlin. Это может быть полезно в сценариях инициализации.
Более простая настройка Test.forkEvery из Kotlin:
— Теперь проще настроить свойство forkEvery тестовых задач из Kotlin, чтобы установить максимальное количество тестовых классов для выполнения в разветвленном тестовом процессе. Вместо того, чтобы требовать использования сеттера setForkEvery(), теперь вы можете просто присвоить ему значение
Улучшения в разработке плагинов Gradle в Kotlin:
— Плагин kotlin-dsl предоставляет удобный способ разработки плагинов на основе Kotlin, которые вносят вклад в логику сборки.
— В дополнение к плагинам, написанным как автономные проекты, Gradle также позволяет вам предоставлять логику сборки, написанную на Kotlin, в виде предварительно скомпилированных плагинов сценариев. Вы записываете их как файлы *.gradle.kts в каталоге src/main/kotlin.
Упрощенная настройка параметров Kotlin:
— Настройка параметров Kotlin в вашей логике сборки теперь проще и больше не требует afterEvaluate {}.
— Автономная компиляция скриптов для скриптов сборки, скриптов инициализации и прикладных скриптов настроена так, чтобы пропустить проверку перед выпуском, чтобы можно было ссылаться на код Kotlin, скомпилированный с более поздними языковыми версиями Kotlin, на основе максимальных усилий.
Плагин kotlin-dsl теперь опубликован на портале плагинов Gradle с правильной информацией о лицензировании в его метаданных. Плагин публикуется под той же лицензией, что и Gradle Build Tool: Apache License Version 2.0.
— Это упрощает использование плагина kotlin-dsl в корпоративных условиях, где требуется опубликованная информация о лицензировании.
Учитывайте —offline при сборке предварительно скомпилированных подключаемых модулей скриптов:
— Сборка предварительно скомпилированных подключаемых модулей скриптов теперь учитывает параметр выполнения командной строки —offline.
— Это упрощает использование плагинов Gradle, которые реагируют на —offline из предварительно скомпилированных скриптовых плагинов.
Менее подробная компиляция с предварительно скомпилированными плагинами скриптов:
— Создание предварительно скомпилированных подключаемых модулей скриптов включает в себя применение подключаемых модулей к синтетическим проектам. Это может произвести некоторый консольный вывод.
— Вывод теперь фиксируется и отображается только в случае сбоя. По умолчанию теперь это менее подробно и не загромождает вывод консоли.
Улучшенная проверка имени и пути предварительно скомпилированных подключаемых модулей сценариев:
— Предварительно скомпилированные подключаемые модули сценариев должны соответствовать задокументированным соглашениям об именах. Gradle теперь будет терпеть неудачу с явным и полезным сообщением об ошибке, если не соблюдаются соглашения об именах.
— Более того, файлы .gradle.kts, присутствующие в ресурсах src/main/resources, больше не считаются предварительно скомпилированными скриптовыми плагинами. Это упрощает отправку скриптов Gradle Kotlin DSL в ресурсы плагинов.
JVM:
поддержка создания проектов с помощью Java 20:
— Gradle теперь поддерживает использование Java 20 для компиляции, тестирования и запуска других программ Java. Этого можно добиться, настроив сборку или задачу на использование цепочки инструментов Java 20.
— В настоящее время вы не можете запускать Gradle на Java 20, потому что в Kotlin отсутствует поддержка JDK 20. Однако вы можете ожидать поддержку запуска Gradle с Java 20 в будущей версии.
Более быстрый анализ Codenarc с параллельным выполнением по умолчанию:
— Плагин Codenarc выполняет проверку качества исходных файлов Groovy вашего проекта с помощью статического анализатора кода. Теперь он использует рабочий API Gradle и цепочки инструментов JVM.
— CodeNarc теперь выполняет анализ через внешний рабочий процесс, что позволяет ему работать параллельно в рамках одного проекта.
— В проектах Groovy этот инструмент будет использовать ту же версию Java, которая требуется проекту. В других типах проектов будет использоваться та же версия Java, что и демон Gradle.
Другие улучшения:
Gradle Wrapper вводит метки для выбора версии:
— Параметр —gradle-version для задачи оболочки теперь поддерживает использование предопределенных меток для выбора версии.
Распознаваемые ярлыки:
— last выбирает последнюю стабильную версию
— release-candidate выбирает последнюю версию-кандидат на выпуск
— nightly выбирает последнюю нестабильную ночную версию
— release-nightly выбирает последнюю нестабильную ночную версию для следующего выпуска
— Дополнительные сведения можно найти здесь. в разделе Gradle Wrapper.
Флаг инкубации плагина Build Init включает дополнительные функции инкубации:
— При создании нового проекта с помощью задачи инициализации с опцией —incubating для сгенерированного проекта будет включено параллельное выполнение проекта и кэширование выходных данных задачи путем создания файла gradle.properties и настройки соответствующие флаги в нем.
Лучшее управление памятью:
— Чтобы лучше управлять использованием памяти, Gradle заблаговременно останавливает неиспользуемые рабочие процессы перед запуском новых.
— Gradle сначала проверяет, может ли доступная физическая память удовлетворить максимальные требования к куче для нового рабочего процесса. Если нет, он ищет неиспользуемые рабочие процессы, которые можно остановить, чтобы освободить достаточно физической памяти для нового процесса.
— Раньше Gradle стремился получить достаточно памяти, чтобы удовлетворить минимальные требования к куче нового процесса. Однако в тех случаях, когда минимальная куча и максимальная куча рабочего процесса сильно различаются, памяти, освобождаемой перед запуском процесса, может быть недостаточно для конечного размера процесса.
— Gradle теперь пытается получить достаточно памяти, чтобы удовлетворить максимальные требования к куче нового процесса.
— Это приводит к более агрессивному управлению физической памятью при запуске новых процессов и во многих случаях приводит к лучшему общему использованию памяти.
Более простое использование общих служб сборки:
— Появилась новая аннотация @ServiceReference, упрощающая использование общих служб сборки.
— Аннотируя свойство с помощью @ServiceReference, вам больше не нужно не забывать явно объявлять, что ваша задача использует общую службу сборки через Task#usesService().
— Если вы также указываете имя службы в аннотации, вам больше не нужно явно получать и назначать ссылку службы сборки на свойство; если существует регистрация службы с заданным именем, свойству автоматически присваивается соответствующая ссылка.
— Дополнительные сведения об использовании служб сборки см. в документации Shared Build Services.
Новые действия потока данных заменяют прослушиватели buildFinished:
— Раньше у Gradle были только прослушиватели Gradle.buildFinished для обработки результата сборки. По многим причинам этот API плохо работает с конфигурационным кешем, но адекватных замен не было. С помощью новых действий потока данных вы теперь можете планировать части работы для обработки результата сборки способом, совместимым с кешем конфигурации. Например, вы можете добавить код для воспроизведения звука при успешном завершении сборки
. В отличие от обратных вызовов, действия обеспечивают необходимый уровень изоляции для обеспечения безопасного кэширования конфигурации.
— В этом выпуске действия потока данных обеспечивают только замену устаревшего обратного вызова Gradle.buildFinished, но запланированы дополнительные параметры для добавления работы вне графа задач.
Домашние кеши пользователей Gradle игнорируются инструментами резервного копирования, которые учитывают CACHEDIR.TAG:
— Кэши в доме пользователя Gradle могут стать очень большими и обычно не содержат файлов, которые необходимо искать или создавать резервные копии. Спецификация CACHEDIR.TAG предлагает способ для инструментов архивации и резервного копирования автоматически пропускать эти каталоги, что делает ненужным их явное исключение. Теперь Gradle помечает каталоги, которые следует игнорировать, с помощью файла CACHEDIR.TAG.
Интеграция с IDE:
— Следующие улучшения предназначены для интеграторов IDE. Они будут доступны конечным пользователям в будущих выпусках IDE, как только они будут использоваться поставщиками IDE.
— Сборки, запущенные через IDE, используют тот же уровень журнала, что и командная строка.
— Раньше при выполнении сборки через IDE игнорировались настройки уровня журнала, указанные в файле проекта gradle.properties. Некоторые поставщики IDE обходили этот недостаток, устанавливая уровень журнала другими способами, чтобы соответствовать ожиданиям пользователей.
— Tooling API теперь учитывает параметр org.gradle.logging.loglevel в gradle.properties проекта и применяет его, как и ожидалось, к сборкам, запущенным из IDE.
Рекламируемые функции:
— Рекламируемые функции — это функции, которые были инкубированы в предыдущих версиях Gradle, но теперь поддерживаются и подлежат обратной совместимости.
— Дополнительную информацию см. в разделе руководства пользователя «Жизненный цикл функций».
— Ниже приведены функции, которые были продвинуты в этом выпуске Gradle.
Кэш конфигурации:
— Функция кэширования конфигурации теперь официально вышла из инкубации и готова к общему использованию. Однако важно отметить, что для использования этой функции могут потребоваться модификации для создания логики и прикладных плагинов для обеспечения полной поддержки.
— Реализация кэша конфигурации еще не завершена. Однако вы можете ожидать, что кеш конфигурации будет развиваться с новыми функциями и улучшениями в следующих версиях Gradle, предлагая поддержку для более широкого диапазона вариантов использования. Чтобы изучить функции, которые в настоящее время рассматриваются для реализации, обратитесь к документации.
— Включение кэша конфигурации может значительно повысить производительность сборки, поскольку он кэширует результат этапа настройки и повторно использует его для последующих сборок. Это означает, что при последующих сборках больше не нужно повторно выполнять фазу настройки, что приводит к более быстрым и эффективным сборкам.
— Кэш конфигурации был представлен как экспериментальная функция еще в Gradle 6.6.
— Чтобы узнать, как воспользоваться этой функцией, обратитесь к документации по кэшу конфигурации.
Рекламируемые функции в Provider API:
ValueSource API больше не разрабатывается. Следующие классы и методы теперь считаются стабильными:
— ProviderFactory.of(Class, Action)
— ValueSource
— ValueSourceParameters
— ValueSourceParameters.None
— ValueSourceSpec
Исправлено:
— 133 проблемы были исправлены в Gradle 8.1
— Преобразования артефактов должны быть разрешены для запуска внешних процессов
— Обновление до gradle 8.0.2 вызывает взаимоблокировку
— Сужение типа возвращаемого значения во внутренних DepedencyResolutionServices прерывает тесты IDE
— Gradle 8 сообщает о неверных флагах конфигурации несмотря на то, что он настроен правильно
— Параметр `useJUnitPlatform` в `KotlinDSL` работает неправильно, начиная с Gradle 8.0
— Gradle выдает/перехватывает множество исключений в AttributeMatchingVariantSelector
— `—scan` игнорируется, если кеш конфигурации используется повторно
— Исключение выдается из ValueSource должна быть проблема с кэшем конфигурации
— JUnit 4.13 jar из дистрибутива gradle не должен просачиваться в путь к классам тестовой среды выполнения
— предварительно скомпилированный плагин скрипта «не должен использоваться вместе с обычными источниками Kotlin» в Gradle 8.1
— Плагин `kotlin-dsl`, использующий `afterEvaluate {}` для настройки Задачи `KotlinCompile` предотвращают их дальнейшую настройку
– Исключите слияние правил: отсутствующая оптимизация
– Уменьшите блокировку `OutputEventRenderer.onOutput()` за счет уточнения детализации блокировки
– Сбой кеша конфигурации, когда задачи исключены по пути
– Устарели путь к классам по умолчанию для тестовых задач и testClassesDirs
– Привязка вокруг примеры заголовков в документах включают теги форматирования дословно
— удалить testng из теста интеграции миграции Maven
— Предварительно скомпилированный плагин сценария buildSrc с именем `init.gradle.kts` вызывает неясную ошибку: Не удалось применить класс плагина, последовательность символов пуста
— Gradle генерирует неработающие ссылки в журналах
— gradle:help выдает неправильный вывод в теплом кеше конфигурации
— Сделать плагин справочных задач работа с конфигурационным кэшем/загрузкой после сохранения
— Заставьте `dependencyInsight` работать с CC/загрузкой после сохранения
— Заставьте :dependencyComponents работать с конфигурационным кешем
— Рефакторинг механизма инструментирования/перехвата конфигурационного кэша
— Фрагменты документации по проверке зависимостей должны ссылаться на XSD
— Потенциально неверное утверждение в ClasspathUtil
— автоматическое определение набора инструментов Java в Linux должно искать в /usr/local/java
— Создание модулей Java с помощью тестов Blackbox Пример нового образца возвращает 404
— Начиная с Gradle 7.6, мои интеграционные тесты терпят неудачу — но сообщают «СБОРКА УСПЕШНА»
— —offline не соблюдается для «синтетических корневых проектов»
— Исправление ошибок тестирования, связанных с Toolchain, на M1 Macs
— Рассмотрите возможность поддержки перегрузки назначения для ConfigurableFileCollection
— Повторно введите рабочий API для CodeNarc
— Устарейте свойство org.gradle.cache.cleanup
— Разрешение графа зависимостей: эквивалентные исключения могут вызвать ненужные мутации графа
— Добавьте документацию для перегрузок назначения Kotlin DSL
— Пробная версия перегрузки назначения Kotlin DSL
— Настройте неявный приемник для KotlinBuildScript, KotlinInitScript и KotlinSettingsScript.
— Периодически: «Вы должны указать базовый URL-адрес или хотя бы один шаблон артефакта для репозитория Ivy», даже если указан базовый URL-адрес.
— Устарело выполнение рабочих процессов Gradle в средах выполнения Java ниже 8.
— Поддержка компиляции и тестирования с помощью Java 20.
— Документирование и продвижение использование ServiceReferences
— когда кеш конфигурации включен, отчет об использовании `Gradle.useLogger()`
— исследование ошибок разрешения свойства project.layout.buildDirectory в теплом кеше
— подключаемый модуль подписи не подписывает артефакт метаданных модуля Gradle для публикации Ivy
— следует избегать публикации артефакт, если задача, создавшая его, была пропущена
— используйте testSourceSets.add(sourceSets.functionalTest) вместо testSourceSets(sourceSets.functionalTest)
— Включить инструментирование на основе агента по умолчанию
— Регрессия: работа codenarc с проектами Groovy4 нарушена
— VersionConstraint.branch и ModuleDependency.endorsing не копируются при копировании зависимости.
— Обновлена документация для улучшения кеша конфигурации в Gradle 8.1
— Более строгая проверка в BuildServicesRegistry.registerIfAbsent дает сбой в тех случаях, когда она работала раньше
— Удалить/заменить устаревший lgtm
— Тип Gradle не показывает, что он ExtensionAware делает доступ к расширениям и дополнительным свойствам сложно в Kotlin DSL
— Добавлено ворчание для использования `JvmVendorSpec.IBM_SEMERU`
— Отсутствует атрибут ‘archiveName’ в eclipse wtp
— Задача `ValidatePlugins` завершается сбоем, если сконфигурирована Java Toolchain > Java, на которой выполняется сборка
— Каталоги версий: имена библиотек не могут заканчиваться на `-class`
— Разрешить настройку каталога сборки Eclipse
— изменить заголовок документа по обновлению с «7.x до последней версии» на «7.x to 8.0»
— спорадические NPE при компиляции кода Java
— Shared Build Services, потребляемые с использованием @ServiceReference, создаются, даже если они не используются
— DefaultWorkerProcessBuilder запрашивает слишком мало памяти
— Несоответствие между javadocElements и вариантами javadoc
— Поддержка инструментирования подписанных JAR-файлов логики сборки
— Gradle жалуется на недопустимую цепочку инструментов — выбирая местоположение исходного пакета — он должен просто игнорировать их
— Недовольство по поводу устаревания StartParameter.buildFile/settingsFile
— Недовольство по поводу устаревания GradleBuild.buildFile
— Аксессуары каталога версий для псевдонимов плагинов, отображаемые как ошибки в редакторе сценариев kotlin IDE
— Исправление задач отчетности о зависимостях для совместимости с кэшированием конфигурации
— Проекты Java, созданные с помощью ` gradle init` должен использовать цепочки инструментов
— Разрешить список каталогов быть входом в кеш конфигурации.
— Добавлен API для настройки классов SourceSetOutputDirs
— Блокировка использования конфигурации при создании
— Кэш конфигурации должен сообщать о проблеме при доступе к расширению задачи во время выполнения
— publishToMavenLocal не генерирует контрольные суммы
— Запретить использование BuildServices в качестве входных данных для ValueSources, полученных во время настройки. — Плагин Kotlin-dsl изменяет kotlinOptions.freeCompilerArgs
в действии задачи . построить, они хранятся — includeGroupByRegex с exclusiveContent может быть легко неправильно настроен, что приведет к снижению безопасности — Добавить ведение журнала устаревания в org.gradle.util.ConfigureUtil.configureByMap(props,delegate) — Добавить ведение журнала устаревания в org.gradle.util.VersionNumber — Добавить ведение журнала устаревания ведение журнала в org.gradle.util.GUtil.toCamelCase (строка) — добавить ведение журнала устаревания в org.gradle.util.WrapUtil.toDomainObjectSet()
— gradlew init должен установить параллель и кэширование в значение true
— Кэш конфигурации должен сообщать о доступе Task.getProject внутри предикатов Task.onlyIf, TaskOutputs.cacheIf и TasksOutputs.upToDateWhen
— Проверять ранее неизвестные моментальные снимки реализации
— application.defaultJvmArgs не применяются при запуске из кеш конфигурации
— [KTS] Предварительные классы были обнаружены в зависимостях. Удалите их из пути к классам, перекомпилируйте с помощью компилятора выпуска или используйте «-Xskip-prerelease-check» для подавления ошибок.
Поделитесь дополнительной информацией (лицензией, URL-адресом репо) о плагине Kotlin DSL как на странице плагина, так и в опубликованном Maven POM.
— Поддержка формата SARIF в плагине Checkstyle
— В инструментальном API FileDownloadResult успешен для HTTP 404
— «Ошибка при оценке свойства ‘javaVersion’ задачи ‘:compileJava’ > Нет значения» при использовании относительного пути javac
— Поставщик оценивается дважды с включенным
кэшем
конфигурации Метаданные GMM для публикации
— Укажите явный путь при ошибке синтаксического анализа из файла каталога версий toml
— Отметьте каталоги глобального кеша
— Событие завершения сборки теперь устарело
— Кэш конфигурации должен сообщать о проблемах при обезвоживании `Closure`s
— Gradle не распознает отключенные параметризованные тесты junit5
— Продвижение кэширования конфигурации как стабильной функции
— `ISE: GradleProperties еще не загружен` для включенной сборки при восстановлении из кеша конфигурации
— Сделать проверку зависимостей совместимой с кешем конфигурации
— Улучшить именование в DirectorySnapshotter для отфильтрованных снимков
— Сборка, запущенная через TAPI, игнорирует настройки уровня регистратора целевой сборки
— Конфигурация кеш не загружает системные свойства из включенных файлов сборки `gradle.properties`
— сбой кеша конфигурации Gradle при использовании Gradle Enterprise
— добавление ранее отсутствующего `build.gradle` в многопроектную сборку с кешем конфигурации не получает pickup
— чувствительность к пути `NONE` в добавочной задаче приводит к тому, что тот же файл добавляется, а затем удаляется
— Сбой сборки при использовании плагина kotlin-dsl и наличии файла src/main/resources/init.gradle.kts
— Представить механизм для получения результата сборки при использовании кэширования конфигурации
— Заставить управление памятью Gradle работать надлежащим образом в контейнерах докеров с ограниченной памятью
— Свойство Test.forkEvery неудобно использовать из Kotlin из-за несоответствия нулевых значений геттера и сеттера
. Автоматически регистрировать пользователя службы сборки, когда он подключен к управляемому свойству
. Упрощение использования общих служб сборки
. Сбои сборки, если корневой проект находится в корне точки монтирования. , с дальнейшими последствиями
— Содействовать инкубации `org.gradle.api.provider.ValueSource` и семейства
— Включить страницу «Руководство пользователя Gradle» для отображения вертикального меню, расположенного слева для мобильного устройства
— Кэш конфигурации должен поддерживать динамические зависимости с репозиториями файловой системы ivy
— Восстановить исключения по умолчанию из кеша конфигурации
— Кэш конфигурации должен поддерживать файловую систему на основе репозитории
— Возможность автоматически использовать «последнюю» версию Gradle для задачи-оболочки
— Сделать плагин `project-report` поддерживать кеш конфигурации
— Сделать плагин `signing` поддерживать кеш конфигурации
— Сделать плагин `ivy-publish` поддерживать кеш конфигурации
— Введение RegularFileProperty для представления вывода задачи WriteProperties
— вводящий в заблуждение javadoc для методов org.gradle.api.java.archives.Manifest.from()
— Gradle должен предупреждать об использовании COD в сочетании с Kotlin DSL
— Ложный вывод консоли при создании средств доступа для предварительно скомпилированных сценариев Kotlin
— Оболочка Gradle не может восстановиться после поврежденной загрузки
— Динамические тесты JUnit 5 не отображаются с их displayName
Авторское право © 2023 FileThor.com Все права защищены.