From 660e6fb7109b64662fb40de187227e6ec504e36b Mon Sep 17 00:00:00 2001 From: Alex Khvatov Date: Tue, 19 Jun 2018 14:47:48 -0400 Subject: [PATCH] Fix for #4157 see discussion https://github.com/sbt/sbt/issues/4157 --- .../ivyint/SbtChainResolver.scala | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/ivy/src/main/scala/sbt/internal/librarymanagement/ivyint/SbtChainResolver.scala b/ivy/src/main/scala/sbt/internal/librarymanagement/ivyint/SbtChainResolver.scala index 3e70ecafc..c7c8904bf 100644 --- a/ivy/src/main/scala/sbt/internal/librarymanagement/ivyint/SbtChainResolver.scala +++ b/ivy/src/main/scala/sbt/internal/librarymanagement/ivyint/SbtChainResolver.scala @@ -216,7 +216,22 @@ private[sbt] case class SbtChainResolver( val firstHit = sortedRevisions.reverse.headOption firstHit.map { hit => val (resolvedModule, resolver) = hit - Message.warn(s"Choosing $resolver for ${resolvedModule.getId}") + + if (resolvedModule.getId.getRevision.contains("SNAPSHOT")) { + + Message.warn( + "Resolving a snapshot version. It's going to be slow unless you use `updateOptions := updateOptions.value.withLatestSnapshots(false)` options.") + val resolvers = sortedRevisions.map(_._2.getName) + sortedRevisions.foreach(h => { + val (module, resolver) = h + Message.info( + s"Out of ${sortedRevisions.size} candidates we found for ${module.getId} in ${resolvers + .mkString(" and ")}, we are choosing ${resolver}.") + }) + } else { + Message.warn(s"Choosing $resolver for ${resolvedModule.getId}") + } + // Now that we know the real latest revision, let's force Ivy to use it val resolvedDescriptor = resolvedModule.getDescriptor val artifactOpt = findFirstArtifactRef(resolvedDescriptor, data, resolver)