diff --git a/cli/src/main/scala-2.11/coursier/cli/Helper.scala b/cli/src/main/scala-2.11/coursier/cli/Helper.scala index 169e5643b..e5cf2c2eb 100644 --- a/cli/src/main/scala-2.11/coursier/cli/Helper.scala +++ b/cli/src/main/scala-2.11/coursier/cli/Helper.scala @@ -169,19 +169,13 @@ class Helper( print.flatMap(_ => fetchQuiet(modVers)) } - def indent(s: String): String = - if (s.isEmpty) - s - else - s.split('\n').map(" "+_).mkString("\n") - if (verbose0 >= 0) { - errPrintln(s"Dependencies:\n${indent(Print.dependenciesUnknownConfigs(dependencies))}") + errPrintln(s" Dependencies:\n${Print.dependenciesUnknownConfigs(dependencies, Map.empty)}") if (forceVersions.nonEmpty) { - errPrintln("Force versions:") + errPrintln(" Force versions:") for ((mod, ver) <- forceVersions.toVector.sortBy { case (mod, _) => mod.toString }) - errPrintln(s" $mod:$ver") + errPrintln(s"$mod:$ver") } } @@ -210,16 +204,21 @@ class Helper( } exitIf(res.conflicts.nonEmpty) { - s"${res.conflicts.size} conflict(s):\n${Print.dependenciesUnknownConfigs(res.conflicts.toVector)}" + s"${res.conflicts.size} conflict(s):\n${Print.dependenciesUnknownConfigs(res.conflicts.toVector, projCache)}" } val trDeps = res.minDependencies.toVector - if (printResultStdout) { - errPrintln(s"Result:") - println(Print.dependenciesUnknownConfigs(trDeps)) - } else if (verbose0 >= 0) - errPrintln(s"Result:\n${indent(Print.dependenciesUnknownConfigs(trDeps))}") + lazy val projCache = res.projectCache.mapValues { case (_, p) => p } + + if (printResultStdout || verbose0 >= 0) { + errPrintln(s" Result:") + val depsStr = Print.dependenciesUnknownConfigs(trDeps, projCache) + if (printResultStdout) + println(depsStr) + else + errPrintln(depsStr) + } def fetch( sources: Boolean, @@ -230,9 +229,9 @@ class Helper( if (verbose0 >= 0) { val msg = cachePolicies match { case Seq(CachePolicy.LocalOnly) => - "Checking artifacts" + " Checking artifacts" case _ => - "Fetching artifacts" + " Fetching artifacts" } errPrintln(msg) @@ -259,7 +258,7 @@ class Helper( None if (verbose0 >= 1 && artifacts.nonEmpty) - println(s"Found ${artifacts.length} artifacts") + println(s" Found ${artifacts.length} artifacts") val tasks = artifacts.map(artifact => (Cache.file(artifact, caches, cachePolicies.head, logger = logger, pool = pool) /: cachePolicies.tail)( @@ -278,9 +277,9 @@ class Helper( logger.foreach(_.stop()) exitIf(errors.nonEmpty) { - s"${errors.size} error(s):\n" + + s" ${errors.size} error(s):\n" + errors.map { case (artifact, error) => - s" ${artifact.url}: $error" + s"${artifact.url}: $error" }.mkString("\n") } diff --git a/core/shared/src/main/scala/coursier/util/Print.scala b/core/shared/src/main/scala/coursier/util/Print.scala index 6680a8d28..23309aacc 100644 --- a/core/shared/src/main/scala/coursier/util/Print.scala +++ b/core/shared/src/main/scala/coursier/util/Print.scala @@ -1,20 +1,28 @@ package coursier.util -import coursier.core.{ Orders, Dependency } +import coursier.core.{Module, Project, Orders, Dependency} object Print { def dependency(dep: Dependency): String = s"${dep.module}:${dep.version}:${dep.configuration}" - def dependenciesUnknownConfigs(deps: Seq[Dependency]): String = { + def dependenciesUnknownConfigs(deps: Seq[Dependency], projects: Map[(Module, String), Project]): String = { + + val deps0 = deps.map { dep => + dep.copy( + version = projects + .get(dep.moduleVersion) + .fold(dep.version)(_.version) + ) + } val minDeps = Orders.minDependencies( - deps.toSet, + deps0.toSet, _ => Map.empty ) - val deps0 = minDeps + val deps1 = minDeps .groupBy(_.copy(configuration = "")) .toVector .map { case (k, l) => @@ -24,7 +32,7 @@ object Print { (dep.module.organization, dep.module.name, dep.module.toString, dep.version) } - deps0.map(dependency).mkString("\n") + deps1.map(dependency).mkString("\n") } } diff --git a/plugin/src/main/scala-2.10/coursier/Tasks.scala b/plugin/src/main/scala-2.10/coursier/Tasks.scala index 421ed0f5f..5790e0a25 100644 --- a/plugin/src/main/scala-2.10/coursier/Tasks.scala +++ b/plugin/src/main/scala-2.10/coursier/Tasks.scala @@ -295,7 +295,8 @@ object Tasks { throw new Exception(s"Maximum number of iteration of dependency resolution reached") if (res.conflicts.nonEmpty) { - println(s"${res.conflicts.size} conflict(s):\n ${Print.dependenciesUnknownConfigs(res.conflicts.toVector)}") + val projCache = res.projectCache.mapValues { case (_, p) => p } + println(s"${res.conflicts.size} conflict(s):\n ${Print.dependenciesUnknownConfigs(res.conflicts.toVector, projCache)}") throw new Exception(s"Conflict(s) in dependency resolution") } @@ -342,7 +343,8 @@ object Tasks { configs ) - val repr = Print.dependenciesUnknownConfigs(finalDeps.toVector) + val projCache = res.projectCache.mapValues { case (_, p) => p } + val repr = Print.dependenciesUnknownConfigs(finalDeps.toVector, projCache) println(repr.split('\n').map(" "+_).mkString("\n")) }