Получите последнюю версию моментального снимка из репозитория Maven в Gradle

У меня есть проект, который использует Gradle для публикации наших артефактов SNAPSHOT в удаленном репозитории Maven.

Когда я публикую в Maven, отметка времени и номер сборки добавляются к имени Jar. И я пытаюсь загрузить последнюю версию, т.е. myjar-1.6.0-20170926.190543-10.jar из одного из других проектов. Я не могу загрузить до тех пор, пока не удалю его из своего .gradle или не перезапущу свое рабочее пространство.

myjar-1.6.0-20170926.162756-7.jar        
myjar-1.6.0-20170926.162756-7.jar.md5    
myjar-1.6.0-20170926.162756-7.jar.sha1   
myjar-1.6.0-20170926.162756-7.pom        
myjar-1.6.0-20170926.162756-7.pom.md5    
myjar-1.6.0-20170926.162756-7.pom.sha1   
myjar-1.6.0-20170926.182639-8.jar        
myjar-1.6.0-20170926.182639-8.jar.md5    
myjar-1.6.0-20170926.182639-8.jar.sha1   
myjar-1.6.0-20170926.182639-8.pom        
myjar-1.6.0-20170926.182639-8.pom.md5    
myjar-1.6.0-20170926.182639-8.pom.sha1   
myjar-1.6.0-20170926.182748-9.jar        
myjar-1.6.0-20170926.182748-9.jar.md5    
myjar-1.6.0-20170926.182748-9.jar.sha1   
myjar-1.6.0-20170926.182748-9.pom        
myjar-1.6.0-20170926.182748-9.pom.md5    
myjar-1.6.0-20170926.182748-9.pom.sha1   
myjar-1.6.0-20170926.190543-10.jar       
myjar-1.6.0-20170926.190543-10.jar.md5   
myjar-1.6.0-20170926.190543-10.jar.sha1  
myjar-1.6.0-20170926.190543-10.pom       
myjar-1.6.0-20170926.190543-10.pom.md5   
myjar-1.6.0-20170926.190543-10.pom.sha1  

Проект зависимостей имеет ниже

configurations.all {
  resolutionStrategy.cacheDynamicVersionsFor 0, 'seconds'
  resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}

 compile ( group: "com.test", name:"myjar", version: "1.6.0-SNAPSHOT", changing: true ); 

Также пробовал с

compile ( "com.test:myjar:latest.integration); 

Но ничего не получается. Дайте мне знать, как это исправить?


person Balasubramani Ponnusamy    schedule 26.09.2017    source источник
comment
вы пытаетесь запустить его из eclipse/любой другой IDE или из командной строки?   -  person OhadR    schedule 27.09.2017
comment
Я пытаюсь это сделать из eclipse ide..   -  person Balasubramani Ponnusamy    schedule 27.09.2017


Ответы (2)


Вы можете запустить локальную сборку с помощью --refresh-dependencies. См. ответы на этот вопрос Как заставить gradle повторно загружать зависимости? для получения дополнительной информации.

person Guenther    schedule 27.09.2017
comment
Гюнтер, я считаю --refresh-dependencies заставит обновить все модули. но я хочу обновить только версии моментальных снимков - person Balasubramani Ponnusamy; 27.09.2017
comment
Это правильный ответ. Насколько я знаю, нет возможности обновить один артефакт. - person OhadR; 28.09.2017

Я сталкиваюсь с той же ситуацией, что и вы.

  • Среда разработки: Android Studio 4.0
  • Строительные инструменты: Gradle 3.6
  • Компьютер: Mac

Я нахожусь в конце приложения, пока я использую банку со стороны сервера, банка включается путем добавления репозитория maven и добавления зависимости проекта в build.gradle, например:

buildscript {
repositories {
    mavenLocal()
    maven { url 'http://maven.xxx.com/xxx/xxx/‘ }        
 }}
dependencies {
   ...
   implementation ‘project_group_id:artifact_id:latest.integration’
   }

Вместо того, чтобы использовать ./gradlew build --refresh-dependencies для очистки кеша, я сразу перешел к папке кеша /Users/your_user_name/.gradle/caches/modules-2/files-2.1 и удалил локальный jar-файл, чтобы загрузить обновленный.

Но все же не удалось...

Наконец, мы обнаружили, что причина странная: мы включили несколько репозиториев maven, одно репо имеет тот же проект, что и тот, который нам нужен, но имеет только одну версию для каждого кода версии. Он находится перед репозиторием maven, из которого мы можем скачать новейшая банка, поэтому она заблокировала обновление самой новой версии. Мы меняем последовательность этих двух репо, и проблема исчезает.

В моем случае это не имеет ничего общего с конфигурацией maven или кешем, это связано с репо, включенным в gradle. Дальше причину еще надо копать.

Надежда может помочь тем, кто сталкивается с той же проблемой.

person TTKatrina    schedule 01.09.2020