如何从具有Gradle依赖项的远程存储库中获取项目的早期版本.jar

时间:2019-04-19 17:24:27

标签: gradle gradle-dependencies

我需要获取具有不同版本项目的两个jar的路径。当前正在构建的版本和我明确指定的先前版本。获取当前正在构建的jar的路径不是问题。但是,当我尝试依赖远程存储库中的项目的某些先前版本时,就会出现问题。我这样声明自定义配置

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,而不是远程的jar。
我发现evaluatedVersion小于项目的当前本地版本就是这种情况。例如,如果我将本地版本更改为较小的值,以使evaluatedVersion较大,那么一切都很好,并且Gradle需要从远程存储库下载jar。
所以看来问题是Gradle不想下载与我正在构建的工件相同的工件,但要下载较小的版本。我该如何强迫他这样做?
到目前为止,我已经尝试过resolutionStrategy.force,但是它似乎不起作用,因为Gradle似乎没有检测到任何版本冲突

PS :我可以看到打印以下内容时依赖项本身是正确的

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

输出为(我没有提供真实的项目名称和版本)

{project.name}
{evaluatedVersion}

在这里,我得到了所需的版本,该版本仅在远程版本中存在。但是当解析为实际的jar时,我得到了当前正在构建的jar

cmp.forEach {
 println(it.name)
}

输出为{project.name}-{project.version}.jar。不管我提供了哪个evaluatedVersion,每次都会得到当前的项目版本jar

0 个答案:

没有答案