diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index 618d0f311..1b567de2c 100644 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -1965,18 +1965,7 @@ object Defaults extends BuildCommon with DefExtra { } /** Implements `cleanFiles` task. */ - private[sbt] def cleanFilesTask: Initialize[Task[Vector[File]]] = { - import ScopeFilter.Make.* - val allConfigs = ScopeFilter(configurations = inAnyConfiguration) - Def.task { - val targetDir = target.value.toPath - val managedSrcDirs = managedSourceDirectories.?.all(allConfigs).value.flatten.flatten - val managedRscDirs = managedResourceDirectories.?.all(allConfigs).value.flatten.flatten - (managedSrcDirs ++ managedRscDirs) - .filter(d => !d.toPath.startsWith(targetDir)) - .toVector - } - } + private[sbt] def cleanFilesTask: Initialize[Task[Vector[File]]] = Def.task { Vector.empty[File] } def runMainTask( classpath: Initialize[Task[Classpath]], diff --git a/main/src/main/scala/sbt/internal/Clean.scala b/main/src/main/scala/sbt/internal/Clean.scala index e154a6835..0d1d9eb96 100644 --- a/main/src/main/scala/sbt/internal/Clean.scala +++ b/main/src/main/scala/sbt/internal/Clean.scala @@ -107,7 +107,6 @@ private[sbt] object Clean { val excludeFilter = cleanFilter(scope).value val delete = cleanDelete(scope).value val targetDir = (scope / target).?.value.map(_.toPath) - val baseDir = (scope / baseDirectory).?.value.map(_.toPath) targetDir.withFilter(_ => full).foreach(deleteContents(_, excludeFilter, view, delete)) (scope / cleanFiles).?.value.getOrElse(Nil).foreach { x => @@ -124,10 +123,8 @@ private[sbt] object Clean { val streamsGlobs = (streamsKey.toSeq ++ stampsKey) .map(k => manager(k).cacheDirectory.toPath.toGlob / **) - // Use baseDirectory instead of target so that file outputs outside the - // target directory but within the project root are also cleaned. ((scope / fileOutputs).value.filter { g => - baseDir.fold(true)(g.base.startsWith) + targetDir.fold(true)(g.base.startsWith) } ++ streamsGlobs) .foreach { g => val filter: Path => Boolean = { path => diff --git a/sbt-app/src/sbt-test/actions/clean-managed-outside-target/test b/sbt-app/src/sbt-test/actions/clean-managed-outside-target/test index 51b6bcbe5..18de18703 100644 --- a/sbt-app/src/sbt-test/actions/clean-managed-outside-target/test +++ b/sbt-app/src/sbt-test/actions/clean-managed-outside-target/test @@ -5,10 +5,3 @@ $ exists src_managed/demo/Test.scala > Compile / managedSourcePaths > Compile / managedSourcePaths / clean $ absent src_managed/demo/Test.scala - -# Test that clean also removes managed sources outside target -> compile -$ exists src_managed/demo/Test.scala - -> clean -$ absent src_managed/demo/Test.scala