2015-03-19 77 views
0

我使用sbt来构建我的Scala项目。SBT:添加第三方库依赖项但NoClassDefFoundError

这里是我的build.sbt文件:

name := "SpatialSpark" 

version := "1.0" 

scalaVersion := "2.10.4" 

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.2.1" 

libraryDependencies += "com.vividsolutions" % "jts" % "1.13" 

然后我尝试将其打包成JAR。 sbt package

最后,我提出这Apache-Spark

spark-submit --class "com.chen.spatial.SpatialApp" --master local[4] target/scala-2.10/spatialspark_2.10-1.0.jar 

它会导致的NoClassDefFoundError错误,

Exception in thread "main" java.lang.NoClassDefFoundError: com/vividsolutions/jts/index/strtree/STRtree 

难道打包成JAR时,我错过了什么?

回答

1

您应该创建一个uber jar和运行

sbt assembly 

后,它应该工作

+0

为什么'sbt'没有内置的插件,提供这样的功能? – chenzhongpu 2015-03-19 02:00:28

+0

我不知道别人(比如gradle),但Maven也没有。 – Krever 2015-03-19 10:08:16

+0

如果这解决了您的问题,请upvote和/或接受答案:) – 2015-05-11 20:32:00