Код, который я пишу, будет запущен в AWS Lambda, на котором установлена только среда исполнения Java 8, поэтому мне нужно, чтобы библиотеки scala были включены в мой jar.Когда я даю ему банку, которую я собрал с помощью sbt-assembly, я получаю java.lang.NoClassDefFoundError: scala/Function3
.
Это все, что у меня есть в build.sbt
для плагина сборки:
assemblyOption in assembly := (assemblyOption in assembly).value.copy(includeScala = true)
assemblyMergeStrategy in assembly := {
case PathList("META-INF", _ @ _*) => MergeStrategy.discard
case _ => MergeStrategy.first
}
Этовсе еще случается, есть ли у меня строка, которая отбрасывает файлы META-INF.
Я использовал brew для установки scala и попытался установить для моего $ SCALA_HOME значение /usr/local/opt/scala/idea
(раздел caveats brew info scala
) и/usr/local/bin/scala
(вывод which scala
)
:: EDIT ::
Я распаковал банку и обнаружил, что рассматриваемый класс действительно был включен в банку здесь: scala/Function3_scala-library-2.12.7_scala-library-2.12.7_scala-library-2.12.7.class