From 380af10e8ffbc04f6e1d9ce469ec4b6ceb1aabf7 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Tue, 26 Aug 2025 01:03:49 -0400 Subject: [PATCH] fix: Fixes exportJars false support **Problem** Setting exportJars to false causes issues due to hashing of the directories. **Solution** Make exportedProducts uncached for now. --- main/src/main/scala/sbt/Defaults.scala | 4 +++- sbt-app/src/sbt-test/cache/export-jars-false/Hello.scala | 4 ++++ sbt-app/src/sbt-test/cache/export-jars-false/build.sbt | 5 +++++ sbt-app/src/sbt-test/cache/export-jars-false/test | 3 +++ 4 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 sbt-app/src/sbt-test/cache/export-jars-false/Hello.scala create mode 100644 sbt-app/src/sbt-test/cache/export-jars-false/build.sbt create mode 100644 sbt-app/src/sbt-test/cache/export-jars-false/test diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index 767f792ed..fa802ff44 100644 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -2614,7 +2614,9 @@ object Classpaths { if isMeta && !force then (mjars ++ sbtCp).distinct else mjars }, - exportedProducts := ClasspathImpl.trackedExportedProducts(TrackLevel.TrackAlways).value, + exportedProducts := Def.uncached( + ClasspathImpl.trackedExportedProducts(TrackLevel.TrackAlways).value + ), exportedProductsIfMissing := ClasspathImpl .trackedExportedProducts(TrackLevel.TrackIfMissing) .value, diff --git a/sbt-app/src/sbt-test/cache/export-jars-false/Hello.scala b/sbt-app/src/sbt-test/cache/export-jars-false/Hello.scala new file mode 100644 index 000000000..ca6f7d131 --- /dev/null +++ b/sbt-app/src/sbt-test/cache/export-jars-false/Hello.scala @@ -0,0 +1,4 @@ +package example + +@main def main(args: String*): Unit = + println("hi") diff --git a/sbt-app/src/sbt-test/cache/export-jars-false/build.sbt b/sbt-app/src/sbt-test/cache/export-jars-false/build.sbt new file mode 100644 index 000000000..548807696 --- /dev/null +++ b/sbt-app/src/sbt-test/cache/export-jars-false/build.sbt @@ -0,0 +1,5 @@ +Global / localCacheDirectory := baseDirectory.value / "diskcache" + +// https://github.com/sbt/sbt/issues/8225 +exportJars := false +libraryDependencies += "org.scalameta" %% "munit" % "1.0.0" % Test diff --git a/sbt-app/src/sbt-test/cache/export-jars-false/test b/sbt-app/src/sbt-test/cache/export-jars-false/test new file mode 100644 index 000000000..f2cec9d1a --- /dev/null +++ b/sbt-app/src/sbt-test/cache/export-jars-false/test @@ -0,0 +1,3 @@ +> compile + +> show Compile/fullClasspath