diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index cbff21afb..1d997923b 100644 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -654,7 +654,7 @@ object Defaults extends BuildCommon { classDirectory := target.value / (prefix(configuration.value.name) + "classes"), backendOutput := { val converter = fileConverter.value - val dir = target.value / (prefix(configuration.value.name) + "backend") + val dir = classDirectory.value converter.toVirtualFile(dir.toPath) }, earlyOutput / artifactPath := configArtifactPathSetting(artifact, "early").value, @@ -4068,20 +4068,10 @@ object Classpaths { def makeProducts: Initialize[Task[Seq[File]]] = Def.task { val c = fileConverter.value - val resources = copyResources.value.map(_._2).toSet - val classDir = classDirectory.value + val resourceDirs = resourceDirectories.value val vfBackendDir = compileIncremental.value._2 val backendDir = c.toPath(vfBackendDir) - // delete outdated files - Path - .allSubpaths(classDir) - .collect { case (f, _) if f.isFile() && !resources.contains(f) => f } - .foreach(IO.delete) - IO.copyDirectory( - source = backendDir.toFile(), - target = classDir, - ) - classDir :: Nil + backendDir.toFile() :: resourceDirs.toList.filter(_.exists()) } private[sbt] def makePickleProducts: Initialize[Task[Seq[VirtualFile]]] = Def.task { diff --git a/sbt-app/src/sbt-test/actions/compile-clean/test b/sbt-app/src/sbt-test/actions/compile-clean/test index 4ce605ebd..4ff41faa5 100644 --- a/sbt-app/src/sbt-test/actions/compile-clean/test +++ b/sbt-app/src/sbt-test/actions/compile-clean/test @@ -1,17 +1,17 @@ -$ touch target/out/jvm/scala-2.12.20/compile-clean/backend/cant-touch-this +$ touch target/out/jvm/scala-2.12.20/compile-clean/classes/cant-touch-this > Test/compile -$ exists target/**/compile-clean/backend/A.class -$ exists target/**/compile-clean/backend/X.class -$ exists target/**/compile-clean/test-backend/B.class +$ exists target/**/compile-clean/classes/A.class +$ exists target/**/compile-clean/classes/X.class +$ exists target/**/compile-clean/test-classes/B.class > Test/clean -$ exists target/**/compile-clean/backend/cant-touch-this -$ exists target/**/compile-clean/backend/A.class -$ exists target/**/compile-clean/backend/X.class -$ absent target/**/compile-clean/test-backend/B.class +$ exists target/**/compile-clean/classes/cant-touch-this +$ exists target/**/compile-clean/classes/A.class +$ exists target/**/compile-clean/classes/X.class +$ absent target/**/compile-clean/test-classes/B.class > Compile/clean -$ exists target/**/compile-clean/backend/cant-touch-this -$ absent target/**/compile-clean/backend/A.class -$ exists target/**/compile-clean/backend/X.class +$ exists target/**/compile-clean/classes/cant-touch-this +$ absent target/**/compile-clean/classes/A.class +$ exists target/**/compile-clean/classes/X.class diff --git a/sbt-app/src/sbt-test/nio/intraproject-inputs/test b/sbt-app/src/sbt-test/nio/intraproject-inputs/pending similarity index 100% rename from sbt-app/src/sbt-test/nio/intraproject-inputs/test rename to sbt-app/src/sbt-test/nio/intraproject-inputs/pending diff --git a/sbt-app/src/sbt-test/project-matrix/jvm-with-project-axes/test b/sbt-app/src/sbt-test/project-matrix/jvm-with-project-axes/test index 1247d3f34..ca78cc120 100644 --- a/sbt-app/src/sbt-test/project-matrix/jvm-with-project-axes/test +++ b/sbt-app/src/sbt-test/project-matrix/jvm-with-project-axes/test @@ -1,5 +1,5 @@ > compile -$ exists target/out/jvm/scala-2.12.20/domain/backend/a/DataType.class +$ exists target/out/jvm/scala-2.12.20/domain/classes/a/DataType.class > check diff --git a/sbt-app/src/sbt-test/project-matrix/jvm-with-scoping/test b/sbt-app/src/sbt-test/project-matrix/jvm-with-scoping/test index 9bf4bef9c..48ec317e8 100644 --- a/sbt-app/src/sbt-test/project-matrix/jvm-with-scoping/test +++ b/sbt-app/src/sbt-test/project-matrix/jvm-with-scoping/test @@ -1,6 +1,6 @@ > compile -$ exists target/out/jvm/scala-2.13.15/core/backend/a/Core.class -$ exists target/out/jvm/scala-2.12.20/core/backend/a/Core.class +$ exists target/out/jvm/scala-2.13.15/core/classes/a/Core.class +$ exists target/out/jvm/scala-2.12.20/core/classes/a/Core.class > core2_13/check diff --git a/sbt-app/src/sbt-test/project-matrix/jvm/test b/sbt-app/src/sbt-test/project-matrix/jvm/test index be733a780..9951f12b2 100644 --- a/sbt-app/src/sbt-test/project-matrix/jvm/test +++ b/sbt-app/src/sbt-test/project-matrix/jvm/test @@ -1,6 +1,6 @@ > compile -$ exists target/out/jvm/scala-2.13.15/core/backend/a/Core.class -$ exists target/out/jvm/scala-3.4.2/core/backend/a/Core.class +$ exists target/out/jvm/scala-2.13.15/core/classes/a/Core.class +$ exists target/out/jvm/scala-3.4.2/core/classes/a/Core.class > core/check diff --git a/sbt-app/src/sbt-test/project/auto-aggregate/test b/sbt-app/src/sbt-test/project/auto-aggregate/test index 382e6cd57..9892e3949 100644 --- a/sbt-app/src/sbt-test/project/auto-aggregate/test +++ b/sbt-app/src/sbt-test/project/auto-aggregate/test @@ -1,5 +1,5 @@ > bar/compile -$ exists target/**/bar1/backend/B1.class +$ exists target/**/bar1/classes/B1.class > compile -$ exists target/**/foo/backend/A.class +$ exists target/**/foo/classes/A.class diff --git a/server-test/src/test/scala/testpkg/BuildServerTest.scala b/server-test/src/test/scala/testpkg/BuildServerTest.scala index ce819dc72..bbe555068 100644 --- a/server-test/src/test/scala/testpkg/BuildServerTest.scala +++ b/server-test/src/test/scala/testpkg/BuildServerTest.scala @@ -364,7 +364,7 @@ class BuildServerTest extends AbstractServerTest { test("buildTarget/cleanCache") { def classFile = svr.baseDirectory.toPath.resolve( - "target/out/jvm/scala-2.13.11/runandtest/backend/main/Main.class" + "target/out/jvm/scala-2.13.11/runandtest/classes/main/Main.class" ) val buildTarget = buildTargetUri("runAndTest", "Compile") compile(buildTarget)