Refactor out keepPreloaded

Ref https://github.com/sbt/sbt/issues/4661
This commit is contained in:
Eugene Yokota 2019-05-11 00:13:22 -04:00
parent 83db3f16c8
commit 1ba195a4f5
3 changed files with 35 additions and 35 deletions

View File

@ -2438,7 +2438,7 @@ object Classpaths {
csrConfiguration := LMCoursier.coursierConfigurationTask(false, false).value,
csrResolvers := CoursierRepositoriesTasks.coursierResolversTask.value,
csrRecursiveResolvers := CoursierRepositoriesTasks.coursierRecursiveResolversTask.value,
csrSbtResolvers := LMCoursier.coursierSbtResolversTask.value,
csrSbtResolvers := CoursierRepositoriesTasks.coursierSbtResolversTask.value,
csrInterProjectDependencies := CoursierInputsTasks.coursierInterProjectDependenciesTask.value,
csrFallbackDependencies := CoursierInputsTasks.coursierFallbackDependenciesTask.value,
) ++

View File

@ -89,37 +89,6 @@ private[sbt] object LMCoursier {
}
}
private val pluginIvySnapshotsBase = Resolver.SbtRepositoryRoot.stripSuffix("/") + "/ivy-snapshots"
def coursierSbtResolversTask: Def.Initialize[sbt.Task[Seq[Resolver]]] = Def.task {
val resolvers =
sbt.Classpaths
.bootRepositories(appConfiguration.value)
.toSeq
.flatten ++ // required because of the hack above it seems
externalResolvers.in(updateSbtClassifiers).value
val pluginIvySnapshotsFound = resolvers.exists {
case repo: URLRepository =>
repo.patterns.artifactPatterns.headOption
.exists(_.startsWith(pluginIvySnapshotsBase))
case _ => false
}
val resolvers0 =
if (pluginIvySnapshotsFound && !resolvers.contains(Classpaths.sbtPluginReleases))
resolvers :+ Classpaths.sbtPluginReleases
else
resolvers
val keepPreloaded = true // coursierKeepPreloaded.value
if (keepPreloaded)
resolvers0
else
resolvers0.filter { r =>
!r.name.startsWith("local-preloaded")
}
}
def publicationsSetting(packageConfigs: Seq[(Configuration, CConfiguration)]): Def.Setting[_] = {
csrPublications := CoursierArtifactsTasks.coursierPublicationsTask(packageConfigs: _*).value
}

View File

@ -74,6 +74,10 @@ private[sbt] object CoursierRepositoriesTasks {
}
}
// local-preloaded-ivy contains dangling ivy.xml without JAR files
// https://github.com/sbt/sbt/issues/4661
private final val keepPreloaded = false // coursierKeepPreloaded.value
def coursierResolversTask: Def.Initialize[sbt.Task[Seq[Resolver]]] =
Def.taskDyn {
@ -83,9 +87,6 @@ private[sbt] object CoursierRepositoriesTasks {
Def.task {
val result0 = resultTask(bootResOpt, overrideFlag).value
val reorderResolvers = true // coursierReorderResolvers.value
// local-preloaded-ivy contains dangling ivy.xml without JAR files
// https://github.com/sbt/sbt/issues/4661
val keepPreloaded = false // coursierKeepPreloaded.value
val paths = ivyPaths.value
val result1 =
@ -120,6 +121,36 @@ private[sbt] object CoursierRepositoriesTasks {
}
}
private val pluginIvySnapshotsBase = Resolver.SbtRepositoryRoot.stripSuffix("/") + "/ivy-snapshots"
def coursierSbtResolversTask: Def.Initialize[sbt.Task[Seq[Resolver]]] = Def.task {
val resolvers =
sbt.Classpaths
.bootRepositories(appConfiguration.value)
.toSeq
.flatten ++ // required because of the hack above it seems
externalResolvers.in(updateSbtClassifiers).value
val pluginIvySnapshotsFound = resolvers.exists {
case repo: URLRepository =>
repo.patterns.artifactPatterns.headOption
.exists(_.startsWith(pluginIvySnapshotsBase))
case _ => false
}
val resolvers0 =
if (pluginIvySnapshotsFound && !resolvers.contains(Classpaths.sbtPluginReleases))
resolvers :+ Classpaths.sbtPluginReleases
else
resolvers
if (keepPreloaded)
resolvers0
else
resolvers0.filter { r =>
!r.name.startsWith("local-preloaded")
}
}
def coursierRecursiveResolversTask: Def.Initialize[sbt.Task[Seq[Resolver]]] =
Def.taskDyn {
val s = state.value