为什么resolutionStrategy中useVersion设置的版本不传播?
Why does the version set by useVersion in the resolutionStrategy not propagate?
我正在使用 Spring Boot Gradle 插件及其依赖管理来管理我自己跨项目的一些依赖,所以我不需要在 build.gradle.
dependencyManagement {
dependencies {
dependency "foo.bar:my-own-library:12.1"
}
}
问题是除了版本“12.1”之外我还需要另一个版本“11.9”并且我希望插件根据变量选择正确的版本。
所以我在 ext 中添加了一个 resolutioStrategy 和一些变量:
dependencyManagement {
dependencies {
dependency "foo.bar:our-own-library:12.1"
}
resolutionStrategy {
eachDependency { details ->
//find available version based on src_compat
//set the new version to use via
details.useVersion(newVersion)
// details.target.version yields updated version
}
}
}
ext {
src_compat = 11
extra_versions = ["foo.bar:my-own-library" : ["11.9"]]
}
目标版本每次都设置正确,但每次配置都使用旧版本 (12.1)。
配置没有其他自定义解析策略。
我的假设是当使用插件的依赖管理时,插件的 resolutionStrategy 能够覆盖每个版本。
resolutionStrategy 是否能够覆盖所有版本,或者我是否必须将其移动到 'normal' gradle 配置?
dependency management plugin's documentation 中有一些关于此的信息。
依赖管理解析策略仅适用于插件的内部配置,例如用于解析您导入的Maven boms的那些。如您所料,如果您希望解析策略应用于项目依赖项的解析,则应将其移至正常的 Gradle 配置。
我正在使用 Spring Boot Gradle 插件及其依赖管理来管理我自己跨项目的一些依赖,所以我不需要在 build.gradle.
dependencyManagement {
dependencies {
dependency "foo.bar:my-own-library:12.1"
}
}
问题是除了版本“12.1”之外我还需要另一个版本“11.9”并且我希望插件根据变量选择正确的版本。
所以我在 ext 中添加了一个 resolutioStrategy 和一些变量:
dependencyManagement {
dependencies {
dependency "foo.bar:our-own-library:12.1"
}
resolutionStrategy {
eachDependency { details ->
//find available version based on src_compat
//set the new version to use via
details.useVersion(newVersion)
// details.target.version yields updated version
}
}
}
ext {
src_compat = 11
extra_versions = ["foo.bar:my-own-library" : ["11.9"]]
}
目标版本每次都设置正确,但每次配置都使用旧版本 (12.1)。 配置没有其他自定义解析策略。
我的假设是当使用插件的依赖管理时,插件的 resolutionStrategy 能够覆盖每个版本。
resolutionStrategy 是否能够覆盖所有版本,或者我是否必须将其移动到 'normal' gradle 配置?
dependency management plugin's documentation 中有一些关于此的信息。
依赖管理解析策略仅适用于插件的内部配置,例如用于解析您导入的Maven boms的那些。如您所料,如果您希望解析策略应用于项目依赖项的解析,则应将其移至正常的 Gradle 配置。