From a9fd11114335c237782f1da67eaa3dda7b87848f Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Sat, 6 Oct 2018 16:50:40 -0400 Subject: [PATCH] Include both explicit plugin resolves and boot resolvers Fixes #4408 --- main/src/main/scala/sbt/Defaults.scala | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index 5be440e6a..8d721792d 100755 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -198,8 +198,9 @@ object Defaults extends BuildCommon { scalaOrganization :== ScalaArtifacts.Organization, scalaArtifacts :== ScalaArtifacts.Artifacts, sbtResolver := { - if (sbtVersion.value endsWith "-SNAPSHOT") Classpaths.sbtIvySnapshots - else Classpaths.typesafeReleases + val v = sbtVersion.value + if (v.endsWith("-SNAPSHOT") || v.contains("-bin-")) Classpaths.sbtMavenSnapshots + else Resolver.DefaultMavenRepository }, crossVersion :== Disabled(), buildDependencies := Classpaths.constructBuildDependencies.value, @@ -2289,13 +2290,20 @@ object Classpaths { inTask(updateSbtClassifiers)( Seq( externalResolvers := { + val boot = bootResolvers.value val explicit = buildStructure.value .units(thisProjectRef.value.build) .unit .plugins .pluginData .resolvers - explicit orElse bootRepositories(appConfiguration.value) getOrElse externalResolvers.value + // https://github.com/sbt/sbt/issues/4408 + (explicit, boot) match { + case (Some(ex), Some(b)) => (ex.toVector ++ b.toVector).distinct + case (Some(ex), None) => ex + case (None, Some(b)) => b + case _ => externalResolvers.value + } }, ivyConfiguration := InlineIvyConfiguration( paths = ivyPaths.value, @@ -3065,6 +3073,8 @@ object Classpaths { val sbtIvySnapshots: URLRepository = Resolver.sbtIvyRepo("snapshots") val typesafeReleases: URLRepository = Resolver.typesafeIvyRepo("releases") val sbtPluginReleases: URLRepository = Resolver.sbtPluginRepo("releases") + val sbtMavenSnapshots: MavenRepository = + MavenRepository("sbt-maven-snapshot", Resolver.SbtRepositoryRoot + "/" + "maven-snapshots/") def modifyForPlugin(plugin: Boolean, dep: ModuleID): ModuleID = if (plugin) dep.withConfigurations(Some(Provided.name)) else dep