我无法使用Gradle强制使用依赖项的版本。我的目标是使用Spring库的0.20.0.RELEASE版本,但是尽管我做了所有的努力,它还是继续致力于0.19.0.RELEASE。
我曾尝试过一些孤立的和相互结合的战略。这些策略包括但可能不限于以下内容(请注意,在所有情况下,$springHateoasVersion都是在驻留在目录中的gradle.properties文件中定义的,该目录是声明Spring依赖项的模块的父目录):
#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 (在父目录的文件中)
subprojects {
configurations.all {
resolutionStrategy {
force "org.springframework.hateoas:spring-hateoas:$springHateoasVersion"
}
}
}我已尽力研究这个问题:
这个问题有一个公认的答案,但似乎与我正在经历的问题不完全匹配:如何强制Gradle为两个依赖项设置相同的版本?
这两个问题似乎都没有被接受: 1) Gradle不尊重resolutionStrategy.force,2) 强制模块版本对生成的org.eclipse.wst.common.component没有影响。。
除了我的项目失败(因为我使用了Spring的错误版本)之外,我可以清楚地看到,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任务对哪条规则导致Gradle选择不合适的依赖版本提供了令人惊讶的洞察力,更不用说我如何绕过said规则了。
发布于 2016-12-23 20:50:05
我找到了这个问题的解决方案,这里。当然,这是我没有尝试的一件事,因为它“看上去不重要”。*-/
为了工作,我将以下内容添加到父目录的文件中(相对于声明依赖于Spring的模块的目录)。
subprojects {
apply plugin: 'io.spring.dependency-management'
dependencyManagement {
applyMavenExclusions false
}
ext['spring-hateoas.version'] = "$springHateoasVersion"
}发布于 2022-11-10 13:00:07
G.
allprojects {
repositories {
exclusiveContent {
filter {
includeGroup "com.facebook.react"
}
forRepository {
maven {
url "$rootDir/../node_modules/react-native/android"
}
}
}
}
...
}参考https://github.com/facebook/react-native/issues/35204#issuecomment-1304740228
https://stackoverflow.com/questions/41306042
复制相似问题