From 5d08d82f3a9f45bf5e58f5e26a7043b35aaf8082 Mon Sep 17 00:00:00 2001 From: Ethan Atkins Date: Tue, 28 May 2019 11:22:33 -0700 Subject: [PATCH] Use libraryJars rather than libraryJar in ClassLoaders Dotty uses multiple library jars. It also simplifies the code to use the libraryJars method. --- main/src/main/scala/sbt/internal/ClassLoaders.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/main/src/main/scala/sbt/internal/ClassLoaders.scala b/main/src/main/scala/sbt/internal/ClassLoaders.scala index 1635aa328..37ace0f72 100644 --- a/main/src/main/scala/sbt/internal/ClassLoaders.scala +++ b/main/src/main/scala/sbt/internal/ClassLoaders.scala @@ -34,8 +34,8 @@ private[sbt] object ClassLoaders { val rawCP = modifiedTimes((outputFileStamps in classpathFiles).value) val fullCP = if (si.isManagedVersion) rawCP - else List(si.libraryJar -> IO.getModifiedTimeOrZero(si.libraryJar)) ++ rawCP - val exclude = dependencyJars(exportedProducts).value.toSet ++ Set(si.libraryJar) + else si.libraryJars.map(j => j -> IO.getModifiedTimeOrZero(j)).toSeq ++ rawCP + val exclude = dependencyJars(exportedProducts).value.toSet ++ si.libraryJars val resourceCP = modifiedTimes((outputFileStamps in resources).value) buildLayers( strategy = classLoaderLayeringStrategy.value, @@ -133,7 +133,7 @@ private[sbt] object ClassLoaders { case _ => false } val allDependenciesSet = allDependencies.toSet - val scalaLibraryLayer = layer(si.libraryJar :: Nil, interfaceLoader, cache, resources, tmp) + val scalaLibraryLayer = layer(si.libraryJars, interfaceLoader, cache, resources, tmp) val cpFiles = fullCP.map(_._1) // layer 2 (resources) @@ -148,7 +148,7 @@ private[sbt] object ClassLoaders { else resourceLayer // layer 4 - val dynamicClasspath = cpFiles.filterNot(allDependenciesSet + si.libraryJar) + val dynamicClasspath = cpFiles.filterNot(allDependenciesSet ++ si.libraryJars) new LayeredClassLoader(dynamicClasspath, dependencyLayer, resources, tmp) } ClasspathUtilities.filterByClasspath(cpFiles, raw)