我正在编写的代码将在AWS Lambda中运行,它只安装了Java 8运行时,所以我需要将scala库包含在我的jar中。当我给它我用sbt-assembly构建的jar时,我得到的是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 (brew info scala的警告部分)和/usr/local/bin/scala (which scala的输出)。
::编辑::
我解压了这个jar,发现这个类实际上包含在这个jar中:scala/Function3_scala-library-2.12.7_scala-library-2.12.7_scala-library-2.12.7.class
发布于 2018-12-11 03:56:25
我在Intellij中将scala-library.jar添加到我的类路径中,删除目标文件夹并运行sbt assembly,这起作用了。
https://stackoverflow.com/questions/53710612
复制相似问题