Решение проблем с кэшем Gradle со снимками? - PullRequest
1 голос
/ 12 апреля 2019

При публикации снимков в artifactory / mavenLocal проекты не будут получать последний снимок.Для этого необходимо удалить банку из ~ / .gradle / cache

В Maven есть функция установки меток времени для снимков.как это будет работать с кэшем gradle?

1 Ответ

1 голос
/ 12 апреля 2019

Есть две вещи, которые следует учитывать при решении вашей проблемы:

  1. Как Gradle обрабатывает / распознает снимки
  2. Как переопределить поведение 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 будет извлекать этот артефакт.Если кэширование вообще отключено, оно будет захватывать зависимость при каждом выполнении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...