Ответ 1
Вам нужно настроить продолжительность кэширования, по умолчанию gradle не будет искать обновления в течение 24 часов:
http://www.gradle.org/docs/current/userguide/dependency_management.html#sec:controlling_caching
Я работаю с Android Studio 8.9
У меня есть build.gradle со следующей зависимостью:
compile ('my.program.commons:my-program-commons:[email protected]')
Эта зависимость хранится в частном репозитории сонатного типа Sonatype.
Когда я вношу изменения в код my.program.commons, я загружаю в nexus.
Проблема в том, что, когда я пытаюсь скомпилировать новую студию SNAPSHOT, вы не сможете забрать изменения.
При запуске из командной строки gradle будет выполняться успешно - но Android Studio не узнает новые файлы.
Если я сделаю тикет версии - скажем от 0.0.2-SNAPSHOT до 0.0.3-SNAPSHOT Android Studio поймет новую версию и скачаю, и все будет хорошо.
Я не хочу, чтобы при каждом изменении менялась незначительная версия.
Вам нужно настроить продолжительность кэширования, по умолчанию gradle не будет искать обновления в течение 24 часов:
http://www.gradle.org/docs/current/userguide/dependency_management.html#sec:controlling_caching
В моем случае использование changing = true
не работает для меня. Но настройки модулей смены кеша решают мою проблему. Пример кода ниже, добавьте файл build.gradle
:
configurations.all {
// Don't cache changing modules at all.
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
Смотрите: https://docs.gradle.org/current/userguide/dependency_management.html
Вы также можете поместить флаг "change" , который будет запускать Gradle, чтобы всегда вытащить последнее, например:
compile ('my.program.commons:my-program-commons:[email protected]') {
changing = true;
}
В моем случае удаление всего каталога <project_root>/.idea/libraries
было единственным решением, которое сработало. AndroidStudio хранит там некоторые конфигурации кэшированных зависимостей. Удаление каталога приводит к повторной проверке их всех еще раз.
Вы можете написать некоторый скрипт/задачу, которая будет автоматизировать это удаление и запускать его как часть clean
задачи Gradle.