Глава 15. Кэш сборки.

15.1. Обзор.

Кэширование сборки - новый тип механизма, цель которого в сохранени времени через переиспользование выходных данных, полученных из других сборок.

15.2. Кэширование вывода задачи.

Помимо последовательных сборок, описанных в Секции 19.9 Проверка на устаревание (также известные как Последовательная сборка), Gradle может сохранить время, переиспользуя результаты с предыдущих выполнений задачи, соответствующих входным данных. Результаты задачи могут быть повторно использованы между сборками на одном компьютере или даже между сборками запущенными на разных компьютерах с помощью кэша сборки.

Работа над этой функцией еще в процессе. Пока не существует открытого API или документации по включению ее.

15.2.1. Ускорение сборок.

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

Следующие входные данные используются для создания ключа кэша для задачи:

  • Тип задачи и ее путь к классам.
  • Наименования свойств результатов.
  • Наименования и значения свойств, аннотированных как описано в секции озаглавленной "Пользовательские типы задач".
  • Наименования и значения свойств, добавленных DSL'ем с помощью TaskInputs.
  • Путь к классам дистрибутива Gradle, buildSrc и плагинов.
  • Содержимое сборочного скрипта, когда оно влияет на выполнение задачи.

Типы задач необходимо явно присоединять к кэшировании результатов задачи используя аннотацию @CacheableTask. Множество встроенных в Gradle типов задач кэшируемые, но пользовательские типы задач по умолчанию не таковы.