From f2a5ae7219f1eff77d6a8801b47ed088040bdfc6 Mon Sep 17 00:00:00 2001 From: MkDev11 Date: Mon, 12 Jan 2026 23:50:01 -0500 Subject: [PATCH] [2.x] fix: Use strict matching for scala-library jar detection (#8507) Fixes #7511 The previous check used contains("scala-library") which incorrectly matched any jar with that substring anywhere in the filename, causing user libraries named like "my-scala-library-foo" to be misclassified as the Scala standard library and filtered from the classpath. Changed to use exact match (scala-library.jar) or prefix match (scala-library-*) to only match the actual Scala library jars, consistent with how scala-reflect is detected on line 199. --- main/src/main/scala/sbt/internal/ClassLoaders.scala | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/main/src/main/scala/sbt/internal/ClassLoaders.scala b/main/src/main/scala/sbt/internal/ClassLoaders.scala index b7a730201..608453f0b 100644 --- a/main/src/main/scala/sbt/internal/ClassLoaders.scala +++ b/main/src/main/scala/sbt/internal/ClassLoaders.scala @@ -182,8 +182,9 @@ private[sbt] object ClassLoaders { cpFiles .filter(f => { val name = f.getName - name.contains(ArtifactInfo.ScalaLibraryID) || si.libraryJars - .exists(_.getName == name) + name == s"${ArtifactInfo.ScalaLibraryID}.jar" || + name.startsWith(s"${ArtifactInfo.ScalaLibraryID}-") || + si.libraryJars.exists(_.getName == name) }) .toArray else si.libraryJars