为什么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 配置。