Отключить удаленный кеш Gradle для одной задачи

У меня есть сборка Gradle с настроенным локальным и удаленным кешем. Среди прочего я использую плагин Spotless Gradle . Этот плагин отметил свои задачи ( spotlessCheck а также spotlessApply) как кэшируемые. Проблема в том, что в моем случае сама задача выполняется довольно быстро, и поэтому проверка вывода задачи в удаленном кеше занимает больше времени, чем фактическое выполнение задачи.

Итак, мой вопрос: можно ли отключить кеш для одной задачи, представленной третьим плагином? Более того, можно ли отключить только удаленный кеш только для одной задачи?

2 ответа

Я не думаю, что для этих двух конкретных задач, которые вы упомянули, включен кеш сборки. Но другим нравится spotlessJava делать.

В любом случае, когда вы выяснили, какие задачи используют кеш сборки (например, запустив с -i), вы можете настроить их с помощью outputs.cacheIf { false }.

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

Например:

      tasks.named("spotlessJava") {
    outputs.cacheIf { false }
}

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

Он попытается проверить, возможна ли загрузка, прежде чем делать это, для меня этого достаточно.

Другие вопросы по тегам