Есть две вещи, которые следует учитывать при решении вашей проблемы:
- Как Gradle обрабатывает / распознает снимки
- Как переопределить поведение Gradle по умолчанию
Некоторые сведения о том, как Gradle распознает / обрабатывает снимки
По умолчанию Gradle обновляет зависимость снимка каждые 24 часа.
Gradle автоматически распознает зависимость как снимок, если версия заканчивается суффиксом -SNAPSHOT
.Например:
dependencies {
compile group: "aGroup", name: "anArtifact", version: "1.0-SNAPSHOT"
}
Однако, если строка версии зависимости не заканчивается на -SNAPSHOT
Gradle нужно сказать, что это снимок с параметром changing
.Например:
dependencies {
compile group: "aGroup", name: "anArtifact", version: "1.0", changing: true
}
Переопределение того, как часто Gradle загружает снимки
Единственный механизм переопределения 24-часовой политики по умолчанию - это настройка Gradle для аннулирования кэша зависимостей (и, таким образом, загрузки нового SNAPSHOT)чаще.Например:
configurations.all {
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
Динамически версионный кэш зависимостей необходимо настроить отдельно
Если вы используете какие-либо динамические версии, например:
dependencies {
compile group: "aGroup", name: "anArtifact", version: "1.+", changing: true
}
YouВам нужно будет настроить аннулирование кэша для этих зависимостей отдельно, например:
configurations.all {
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
resolutionStrategy.cacheDynamicVersionsFor 0, 'seconds'
}
Влияние на производительность сборки
Следует отметить, что чем короче период кеширования зависимости, темЧаще всего Gradle будет извлекать этот артефакт.Если кэширование вообще отключено, оно будет захватывать зависимость при каждом выполнении.