在我的项目中,这是根项目部分:
configure(allprojects) {
apply plugin: "java"
apply plugin: "idea"
apply plugin: "eclipse"
apply from: "${gradleScriptDir}/ide.gradle"
group = "org.springframework.data"
configurations.all {
// Hack to let Gradle pickup latest SNAPSHOTS
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
// Force all core Spring Framework libraries into the same version
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'org.springframework') {
details.useVersion "$springVersion"
}
}
...在一个特定的子项目中,我希望更改应用的版本并使用另一个版本。我尝试过设置configuration {}、configurations {}和简单的resolutionStrategy,但它们都不起作用。这是否可能,或者是我需要将这个子项目移到另一个完全不同的项目中的信号?
更新:
我试过这个:
project("spring-data-rest-boot") {
apply plugin: "spring-boot"
description = "Spring Data REST example using Spring Boot"
configurations {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'org.springframework') {
details.useVersion "4.0.0.RELEASE"
}
}
}
...并得到这样的结果:在配置‘:spring- build_p7c7h594c24dhb3ll7q8nj34m$_run_closure4_closure19_closure21@3eff4d1f -rest-boot:resolutionStrategy’中找不到参数启动的方法eachDependency()。
这一点:
project("spring-data-rest-boot") {
apply plugin: "spring-boot"
description = "Spring Data REST example using Spring Boot"
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'org.springframework') {
details.useVersion "4.0.0.RELEASE"
}
}
...生成此代码:在项目':spring-data-rest-boot‘上找不到属性'resolutionStrategy’。
发布于 2014-01-08 03:53:04
依赖关系规则是针对每个配置的,配置是针对每个项目的。要使新规则生效,您必须使用与在allprojects下使用的语法相同的正确语法
project("spring-data-rest-boot") {
...
configurations.all {
resolutionStrategy.eachDependency { ... }
}
}但是,如果您将第一个依赖项规则保留为allprojects,那么您最终将得到两个相互竞争的spring-date-rest-boot规则,这就提出了一个问题,即哪一个会赢。
如果只有一个项目需要特殊处理,您还可以在allprojects规则中使用条件:
allprojects {
...
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'org.springframework') {
if (project.name == "spring-data-rest-boot") {
details.useVersion("4.0.0.RELEASE")
} else {
details.useVersion(springVersion)
}
}
}
}另一种可行的解决方案是简单地更改springVersion的值
project("spring-data-rest-boot") {
...
springVersion = "4.0.0.RELEASE"
}有更多的方法可以解决这个问题,但我希望您现在就明白了。
https://stackoverflow.com/questions/20977138
复制相似问题