in multiversion/src/main/scala/multiversion/commands/ExportCommand.scala [237:260]
private def overrideTargets(
thirdparty: ThirdpartyConfig,
index: ResolutionIndex
): ThirdpartyConfig = {
val updatedDependencies = thirdparty.dependencies
.map { config =>
val overridden = for {
dep <- index.dependencies.getOrElse(config.id, Nil)
target <- thirdparty.overrideTargetsMap.getOrElse(dep.module, Nil)
// Target overrides can be used to replace a module by a given target. If the
// replacing target is also a 3rdparty dependency D, then we don't apply the override
// when resolving D.
if !config.targets.contains(target)
} yield ModuleConfig(dep.module) -> target
val depsToExclude = overridden.map(_._1)
val targetsToAdd = overridden.map(_._2)
config.copy(
exclusions = config.exclusions ++ depsToExclude,
dependencies = (config.dependencies ++ targetsToAdd).distinct
)
}
thirdparty.copy(dependencies = updatedDependencies)
}