Отключить удаленный кеш Gradle для одной задачи
У меня есть сборка Gradle с настроенным локальным и удаленным кешем. Среди прочего я использую плагин Spotless Gradle . Этот плагин отметил свои задачи (
spotlessCheck
а также
spotlessApply
) как кэшируемые. Проблема в том, что в моем случае сама задача выполняется довольно быстро, и поэтому проверка вывода задачи в удаленном кеше занимает больше времени, чем фактическое выполнение задачи.
Итак, мой вопрос: можно ли отключить кеш для одной задачи, представленной третьим плагином? Более того, можно ли отключить только удаленный кеш только для одной задачи?
2 ответа
Я не думаю, что для этих двух конкретных задач, которые вы упомянули, включен кеш сборки. Но другим нравится
spotlessJava
делать.
В любом случае, когда вы выяснили, какие задачи используют кеш сборки (например, запустив с
-i
), вы можете настроить их с помощью
outputs.cacheIf { false }
.
Обратите внимание, что это отключает как локальный, так и удаленный кеш сборки. Я не знаю способа выборочно отключить только удаленный кеш для данной задачи, но оставить локальный включенным.
Например:
tasks.named("spotlessJava") {
outputs.cacheIf { false }
}
Я не думаю, что отключение только удаленного кеша возможно, но если ваша проблема в том, что результат кеша слишком велик и вы тратите много времени на его загрузку (что всегда терпит неудачу), вы можете решить это с помощью useExpectContinue инкубационное свойство.
Он попытается проверить, возможна ли загрузка, прежде чем делать это, для меня этого достаточно.