diff --git a/src/main/groovy/com/github/benmanes/gradle/versions/updates/Resolver.groovy b/src/main/groovy/com/github/benmanes/gradle/versions/updates/Resolver.groovy index 9a005d23..9ed17da7 100644 --- a/src/main/groovy/com/github/benmanes/gradle/versions/updates/Resolver.groovy +++ b/src/main/groovy/com/github/benmanes/gradle/versions/updates/Resolver.groovy @@ -131,6 +131,12 @@ class Resolver { copy.setCanBeResolved(true) } + // https://github.com/ben-manes/gradle-versions-plugin/issues/592 + // allow resolution of dynamic latest versions regardless of the original strategy + if(copy.resolutionStrategy.metaClass.hasProperty(copy.resolutionStrategy, "failOnDynamicVersions")) { + copy.resolutionStrategy.metaClass.setProperty(copy.resolutionStrategy, "failOnDynamicVersions", false) + } + // Resolve using the latest version of explicitly declared dependencies and retains Kotlin's // inherited stdlib dependencies from the super configurations. This is required for variant // resolution, but the full set can break consumer capability matching. diff --git a/src/test/groovy/com/github/benmanes/gradle/versions/DependencyUpdatesSpec.groovy b/src/test/groovy/com/github/benmanes/gradle/versions/DependencyUpdatesSpec.groovy index 64c53951..0bc7d2cf 100644 --- a/src/test/groovy/com/github/benmanes/gradle/versions/DependencyUpdatesSpec.groovy +++ b/src/test/groovy/com/github/benmanes/gradle/versions/DependencyUpdatesSpec.groovy @@ -136,6 +136,30 @@ final class DependencyUpdatesSpec extends Specification { checkUndeclaredVersions(reporter) } + @Issue("https://github.com/ben-manes/gradle-versions-plugin/issues/592") + def 'Project configurations failOnDynamicVersions'() { + given: + def project = singleProject() + addRepositoryTo(project) + addDependenciesTo(project) + project.configurations.all { + resolutionStrategy { + failOnDynamicVersions() + } + } + + when: + def reporter = evaluate(project) + reporter.write() + + then: + checkUnresolvedVersions(reporter) + checkUpgradeVersions(reporter) + checkUpToDateVersions(reporter) + checkDowngradeVersions(reporter) + checkUndeclaredVersions(reporter) + } + @Unroll def 'Single project (#revision, #outputFormat)'() { given: