2015-03-19 3 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" 

Тогда я пытаюсь упаковать его в банку. 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 

ли я что-то пропустила, когда упаковка его в банку?

ответ

1

Вы должны создать uber jar и после запуска

sbt assembly 

он должен работать

+0

Почему 'sbt' не имеет встроенный плагин, предоставившего такую ​​функцию? – chenzhongpu

+0

Я не знаю других (например, град), но у Maven нет такого. – Krever

+0

Если это решит вашу проблему, пожалуйста, поддержите и/или примите ответ, пожалуйста :) –

1

Пожалуйста, посмотрите на этот шаблон проекта:

https://github.com/spektom/spark-scala-template

Чтобы построить uberjar пробег:

sbt assembly 

Для запуска Jar в Spark:

$SPARK_HOME/bin/spark-submit --class com.github.spark.App spark-scala-assembly-0.0.1.jar 
Смежные вопросы