Skip to content

Commit

Permalink
Merge pull request #201 from nebula-plugins/use-resolution-strategy-d…
Browse files Browse the repository at this point in the history
…ependency-substitution

Locks are applied with a different resolution strategy to assist with core Gradle alignment platform edges
  • Loading branch information
OdysseusLives committed Sep 23, 2020
2 parents 7b4563c + 84252a1 commit 5dc9161
Show file tree
Hide file tree
Showing 2 changed files with 561 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.artifacts.Configuration
import org.gradle.api.artifacts.DependencyResolveDetails
import org.gradle.api.artifacts.DependencySubstitutions
import org.gradle.api.artifacts.ExternalDependency
import org.gradle.api.logging.Logger
import org.gradle.api.logging.Logging
Expand Down Expand Up @@ -277,15 +278,17 @@ class DependencyLockPlugin : Plugin<Project> {
}

private fun lockConfiguration(conf: Configuration, selectorKeys: List<ModuleVersionSelectorKey>) {
val selectorsByKey = selectorKeys.groupBy { it }.mapValues { it.key }
conf.resolutionStrategy.eachDependency { details ->
val moduleKey = details.toKey()
val module = selectorsByKey[moduleKey]
if (module != null) {
details.because("${moduleKey.toModuleString()} locked to ${module.version}\n" +
"\twith reasons: ${reasons.joinToString()}")
.useVersion(module.version!!)
}
val resolutionStrategySubstitution: DependencySubstitutions = conf.resolutionStrategy.dependencySubstitution
selectorKeys.forEach { key ->
val substitutedModule = resolutionStrategySubstitution.module("${key.group}:${key.name}")
val withModule = resolutionStrategySubstitution.module("${key.group}:${key.name}:${key.version}")

val substitutionMessage = "${key.group}:${key.name} locked to ${key.version}\n" +
"\twith reasons: ${reasons.joinToString()}"

resolutionStrategySubstitution.substitute(substitutedModule)
.because(substitutionMessage)
.with(withModule)
}
}

Expand Down

0 comments on commit 5dc9161

Please sign in to comment.