scala-compiler.jar
размер относительно большой 10 МБ. Часто это зависимость provided
, означающая, что она не попадает в жирную банку после сборки, например, в бесформенном , circe , play- json, et c,
"org.scala-lang" % "scala-compiler" % scalaVersion.value % "provided"
С другой стороны, уточнил попытался сделать это provided
однако они, похоже, обратились
scalaOrganization.value % "scala-compiler" % scalaVersion.value,
AFAIU, provided
означает что-то вроде
- нужно только во время компиляции и не будет частью толстой фляги времени выполнения, потому что это не нужно во время выполнения
- нужно как во время компиляции, так и во время выполнения, но не будет частью толстой фляги, поскольку ожидается, что контейнер / платформа предоставит ее
Если scala-compiler
используется только для компиляции время макроса расширения, кажется, должно быть безопасно удалить его из среды выполнения? Как мы можем узнать, безопасно ли исключить scala-compiler
из среды выполнения, скажем,
"ai.x" %% "play-json-extensions" % "0.30.1" exclude("org.scala-lang", "scala-compiler")
или даже более резко
assemblyExcludedJars in assembly := {
val excludedDeps = List(
"scala-compiler"
)
(fullClasspath in assembly)
.value
.filter(dep => excludedDeps.exists(dep.data.getName.contains))
}
Причина запроса: AWS lambdas размер пакета развертывания limit
50 MB (zipped, for direct upload)
250 MB (unzipped, including layers)
и наши Scala lambdas достигают предела размера.