Как получить предыдущую версию .jar моего проекта из удаленного репозитория с зависимостями Gradle - PullRequest
0 голосов
/ 19 апреля 2019

Мне нужно получить пути к двум банкам с разными версиями моего проекта. Тот, который в настоящее время строит, и одна предыдущая версия, которую я указываю явно. Получить путь к текущей строительной банке не проблема. Но есть проблема, когда я пытаюсь зависеть от какой-то предыдущей версии моего проекта, которая находится в удаленном хранилище. Я объявляю пользовательскую конфигурацию примерно так

val versionToCompare: String? by project
val evaluatedVersion = versionToCompare ?: project.version
val cmp by configurations.creating
dependencies {
    cmp("${project.group}:${project.name}:$evaluatedVersion") {
        isTransitive = false
    }
}

evaluatedVersion предоставляется через атрибуты командной строки.
Проблема в том, что эта зависимость разрешается в локально построенном jar, а не в удаленном.
Я понял, что это тот случай, когда evaluatedVersion меньше текущей локальной версии моего проекта. Если я, например, изменю локальную версию на какое-то меньшее значение, чтобы evaluatedVersion было больше, тогда все в порядке, и Gradle загружает необходимый jar из удаленного репозитория.
Так что, похоже, проблема в том, что Gradle не хочет загружать тот же артефакт, что и у меня, но с уменьшенной версией. Как заставить его сделать это?
До сих пор я пробовал resolutionStrategy.force, но, похоже, он не работает, поскольку Gradle, похоже, не обнаруживает конфликтов версий

PS : Я вижу, что сама зависимость корректна при печати следующего

cmp.allDependencies.forEach {
  println(it.name)
  println(it.version)
}

Вывод (я не предоставляю реальное название проекта и версию)

{project.name}
{evaluatedVersion}

Здесь я получаю нужную версию, которая присутствует только на пульте. Но когда это разрешено до фактической банки, я получаю тот, который в настоящее время строит

cmp.forEach {
 println(it.name)
}

Выход составляет {project.name}-{project.version}.jar. Неважно, какой evaluatedVersion я предоставил, я получаю jar текущей версии проекта каждый раз

...