private def overrideTargets()

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)
  }