From fb51b26e36fe2fc0e6250f1573b297b41b49b766 Mon Sep 17 00:00:00 2001 From: Ivica Loncar Date: Wed, 9 Nov 2022 16:01:42 +0100 Subject: [PATCH] GH-10 Allow override of versions with extraProperties values --- .../DependencyManagementContainer.groovy | 28 +++++++++++++++---- .../XLDependencyPlatformPlugin.groovy | 2 +- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/main/groovy/com/xebialabs/gradle/dependency/DependencyManagementContainer.groovy b/src/main/groovy/com/xebialabs/gradle/dependency/DependencyManagementContainer.groovy index fa760cc..55e8efc 100644 --- a/src/main/groovy/com/xebialabs/gradle/dependency/DependencyManagementContainer.groovy +++ b/src/main/groovy/com/xebialabs/gradle/dependency/DependencyManagementContainer.groovy @@ -22,7 +22,10 @@ class DependencyManagementContainer { Map versions = [:].withDefault { "" } - Map resolveCache = [:].withDefault { String s -> s ? engine.createTemplate(s).make(versions).toString() : s } + Map resolveCache = [:].withDefault { String s -> + Map resolutionContextMap = (versions + rootProject.extensions.extraProperties.properties).withDefault { "" } + s ? engine.createTemplate(s).make(resolutionContextMap).toString() : s + } Map managedVersions = [:] List blackList = [] Map rewrites = [:] @@ -50,10 +53,25 @@ class DependencyManagementContainer { } private def exposeVersions() { - versions.collect { k, v -> - if (v !== "" && k != "out") { - logger.debug("${rootProject.name} added $k=$v") - rootProject.extensions.extraProperties.set(k, v) + versions << versions.collectEntries { k, v -> + if (k !== "out") { + if (rootProject.extensions.extraProperties.has(k)) { + def overrideValue = rootProject.extensions.extraProperties.get(k) + logger.info("${rootProject.name} added overriden version ${k}=${overrideValue} (found in gradle extra properties)") + rootProject.extensions.extraProperties.set(k, overrideValue) + [k:overrideValue] + } else { + if (v !== "") { + logger.info("${rootProject.name} added version $k=$v") + rootProject.extensions.extraProperties.set(k, v) + [k:v] + } else { + logger.error("Unable to expose version ${k} to gradle extra properties. Check if it is defined in gradle.properties or .conf file") + [k:""] + } + } + } else { + [:] } } } diff --git a/src/main/groovy/com/xebialabs/gradle/dependency/XLDependencyPlatformPlugin.groovy b/src/main/groovy/com/xebialabs/gradle/dependency/XLDependencyPlatformPlugin.groovy index 95e72ac..33fabcf 100644 --- a/src/main/groovy/com/xebialabs/gradle/dependency/XLDependencyPlatformPlugin.groovy +++ b/src/main/groovy/com/xebialabs/gradle/dependency/XLDependencyPlatformPlugin.groovy @@ -36,7 +36,7 @@ class XLDependencyPlatformPlugin implements Plugin { } project.logger.info("Added $artifactModule:$artifactVersion to ${projectName}") } else { - project.logger.info("Unable to add $artifactModule to ${projectName}") + project.logger.info("Unable to add $artifactModule to ${projectName} as a constraint") } } }