У нас есть одна зависимость gradle, которая имеет то же имя, но сильно меняется, поэтому мы хотим всегда получать ее заново.Зависимость сохраняется в артефакте, и ее содержимое:
entity-configurator-0.6.2-staging-sources.jar 12-Jun-2019 09:33 110.19 KB
entity-configurator-0.6.2-staging.jar 12-Jun-2019 09:33 147.37 KB
entity-configurator-0.6.2-staging.pom 12-Jun-2019 09:33 3.01 KB
Мы использовали описанную здесь стратегию разрешения https://stackoverflow.com/a/14804849. Это код build.gradle.
configurations.all {
resolutionStrategy {
cacheDynamicVersionsFor 0, "seconds"
cacheChangingModulesFor 0, "seconds"
}
}
...
...
compile ('com.***:entity-configurator:0.6.2-staging') { changing = true }
Это должно заставить грейдера всегда проверять актуальность зависимости.Что, вероятно, делает, но не правильно, так как при запуске
./gradlew build --info
вывод равен
> Task :compileJava
Cached resource https://artifactory.***.net/artifactory/libs-staging-local/com/***/entity-configurator/0.6.2-staging/entity-configurator-0.6.2-staging.pom is up-to-date (lastModified: Wed Jun 12 11:33:33 CEST 2019).
Cached resource https://artifactory.***.net/artifactory/libs-staging-local/com/***/entity-configurator/0.6.2-staging/entity-configurator-0.6.2-staging.jar is up-to-date (lastModified: Wed Jun 12 12:12:36 CEST 2019).
Skipping task ':compileJava' as it is up-to-date.
В этом случае сама зависимость была обновлена в артефакте, но не обновленав моем проекте после обновления Gradle.Проблема здесь в том, что они являются двумя разными частями искомой зависимости (.jar и .pom), и оба имеют разное время lastModified.
Cached resource https://artifactory.***.net/artifactory/libs-staging-local/com/***/0.6.2-staging/entity-configurator-0.6.2-staging.pom is up-to-date (lastModified: Wed Jun 12 11:33:33 CEST 2019).
vs
Cached resource https://artifactory.***.net/artifactory/libs-staging-local/com/***/0.6.2-staging/entity-configurator-0.6.2-staging.jar is up-to-date (lastModified: Wed Jun 12 12:12:36 CEST 2019).
Время файла .jar последнего измененного корректно,Пом, очевидно, из предыдущей версии зависимости.Когда я проверяю папку .gradle / cache после обновления проекта, появляется новый файл .jar, но .pom все еще из предыдущей версии.Кто-нибудь знает, в чем здесь проблема и как ее решить?Я действительно не понимаю, почему файл .pom не обновляется.