diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index e45c198de..22f0bf251 100755 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -243,7 +243,7 @@ object Defaults extends BuildCommon { // coursier settings csrExtraCredentials :== Nil, csrLogger := LMCoursier.coursierLoggerTask.value, - csrCachePath :== LMCoursier.defaultCacheLocation, + csrCacheDirectory :== LMCoursier.defaultCacheLocation, csrMavenProfiles :== Set.empty, ) @@ -2160,8 +2160,8 @@ object Classpaths { }).value, moduleName := normalizedName.value, ivyPaths := IvyPaths(baseDirectory.value, bootIvyHome(appConfiguration.value)), - csrCachePath := { - val old = csrCachePath.value + csrCacheDirectory := { + val old = csrCacheDirectory.value val ip = ivyPaths.value val defaultIvyCache = bootIvyHome(appConfiguration.value) if (old != LMCoursier.defaultCacheLocation) old diff --git a/main/src/main/scala/sbt/Keys.scala b/main/src/main/scala/sbt/Keys.scala index fc5c4db35..dfb69d13e 100644 --- a/main/src/main/scala/sbt/Keys.scala +++ b/main/src/main/scala/sbt/Keys.scala @@ -324,7 +324,7 @@ object Keys { val internalDependencyConfigurations = settingKey[Seq[(ProjectRef, Set[String])]]("The project configurations that this configuration depends on") val useCoursier = settingKey[Boolean]("Use Coursier for dependency resolution.").withRank(BSetting) - val csrCachePath = settingKey[File]("Coursier cache path").withRank(CSetting) + val csrCacheDirectory = settingKey[File]("Coursier cache directory. Uses -Dsbt.coursier.home or Coursier's default.").withRank(CSetting) val csrMavenProfiles = settingKey[Set[String]]("").withRank(CSetting) private[sbt] val csrConfiguration = taskKey[CoursierConfiguration]("General dependency management (Coursier) settings, such as the resolvers and options to use.").withRank(DTask) private[sbt] val csrProject = taskKey[lmcoursier.definitions.Project]("") diff --git a/main/src/main/scala/sbt/internal/LMCoursier.scala b/main/src/main/scala/sbt/internal/LMCoursier.scala index 075767a23..4a7c9e2bd 100644 --- a/main/src/main/scala/sbt/internal/LMCoursier.scala +++ b/main/src/main/scala/sbt/internal/LMCoursier.scala @@ -15,9 +15,14 @@ import sbt.librarymanagement._ import Keys._ import sbt.internal.librarymanagement.{ CoursierArtifactsTasks, CoursierInputsTasks } import sbt.util.Logger +import sbt.io.syntax._ private[sbt] object LMCoursier { - def defaultCacheLocation: File = CoursierDependencyResolution.defaultCacheLocation + def defaultCacheLocation: File = + sys.props.get("sbt.coursier.home") match { + case Some(home) => new File(home).getAbsoluteFile / "cache" + case _ => CoursierDependencyResolution.defaultCacheLocation + } def coursierConfigurationTask( withClassifiers: Boolean, @@ -56,7 +61,7 @@ private[sbt] object LMCoursier { val createLogger = csrLogger.value - val cache = csrCachePath.value + val cache = csrCacheDirectory.value val internalSbtScalaProvider = appConfiguration.value.provider.scalaProvider val sbtBootJars = internalSbtScalaProvider.jars()