gpt4 book ai didi

java - Gradle 不支持强制依赖版本

转载 作者:行者123 更新时间:2023-12-03 06:01:36 25 4
gpt4 key购买 nike

我无法使用 Gradle 强制依赖版本。我的目标是使用版本 0.20.0.RELEASE的 Spring HATEOAS 库,但尽管我付出了所有努力,但它一直解析为 0.19.0.RELEASE .

我尝试了多种策略,无论是孤立的还是相互结合的。这些策略包括但可能不限于以下(请注意,在所有情况下 $springHateoasVersion 都定义在 gradle.properties 文件中,该文件位于声明 Spring HATEOAS 依赖项的模块目录的父目录中):

#1(在声明依赖的模块的 build.gradle 文件中)

apply plugin: 'io.spring.dependency-management'

dependencyManagement {
dependencies {
dependency group:'org.springframework.hateoas', name:'spring-hateoas', version:"$springHateoasVersion"
}
}

#2(在声明依赖的模块的 build.gradle文件中)
compile ("org.springframework.hateoas:spring-hateoas:$springHateoasVersion") { force = true }

#3(在 父目录 build.gradle 文件中)
subprojects {
configurations.all {
resolutionStrategy {
force "org.springframework.hateoas:spring-hateoas:$springHateoasVersion"
}
}
}

我已尽力研究这个问题:

这个问题有一个公认的答案,但似乎与我遇到的问题不完全匹配: How can I force Gradle to set the same version for two dependencies?

这些问题似乎都没有接受答案:1) Gradle is not honoring resolutionStrategy.force , 2) Forcing a module version has no effect on generated org.eclipse.wst.common.component .

除了我的项目被破坏的事实(因为我使用了错误版本的 Spring HATEOAS),我可以明确地看到 Gradle 是“有意识地”选择了不正确的依赖版本,尽管我提出了所有的抗议。当我运行 ./gradlew dependencyInsight --dependency spring-hateoas ,我看到以下输出:
org.springframework.hateoas:spring-hateoas:0.19.0.RELEASE (selected by rule)

org.springframework.hateoas:spring-hateoas:0.20.0.RELEASE -> 0.19.0.RELEASE
\--- project :Commons
\--- compile

尽管有这个名字, dependencyInsight task 几乎没有提供关于哪个规则导致 Gradle 选择不适当的依赖版本的信息,更不用说我如何规避所述规则了。

最佳答案

我找到了这个问题的解决方案here .当然,这是我没有尝试的一件事,因为它“看起来并不重要”。 :-/

为了使事情正常进行,我将以下内容添加到 build.gradle 的文件家长 目录(相对于声明依赖于 Spring HATEOAS 的模块的目录)。

subprojects {
apply plugin: 'io.spring.dependency-management'

dependencyManagement {
applyMavenExclusions false
}

ext['spring-hateoas.version'] = "$springHateoasVersion"
}

关于java - Gradle 不支持强制依赖版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41306042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com