2013-07-21 2 views
1

Я работаю над затмением с установленным плагином Scala 2.9.3.
У меня есть проект Scala, который работает отлично от затмения, но когда я экспортировать проект «Runnable JAR File», и я пытаюсь запустить его, я получаю следующее исключение:При экспорте проекта Java Scala он не смог получить scala/ScalaObject

java.lang.NoClassDefFoundError: scala/ScalaObject 

Я пробовал все 3 Библиотека вариантов обработки:

  • Извлечение необходимых библиотек ...
  • Пакет необходимых библиотек ...
  • копирования требуется библиотеки ...

Все в том же исключении.

Что мне нужно сделать, чтобы сделать отдельный JAR-файл из моего проекта?

+0

Вы уверены, что scala-library.jar входит в число банок? – pedrofurla

+0

@pedrofurla: Я не уверен, как это проверить (новое для Java-мира). но я предполагаю, что он существует где-то, так как он работает от Eclipse. –

ответ

1

Я использовал sbt-assembly плагин в прошлом, я нашел его довольно простым в использовании.

+0

Спасибо, я дам ему попробовать и обновить, если это помогло (: –

1

Если вы используете SBT для поддержки &, строите свой проект, то, например, pedrofurla предложили попробовать sbt-assembly плагин. В простейшем случае просто добавьте follwing к вашему проекту сборки (я предпочитаю Build.scala, но в *.sbt она выглядит так же):

1) импорт:

import sbtassembly.Plugin._ 
import AssemblyKeys._ 

2) настройки:

mainClass in assembly := Some("path.to.MainClass") 
jarName in assembly := "jar-name.jar" 

3) Если вы хотите опубликовать артефакт:

artifact in (Compile, assembly) ~= { art => 
    art.copy(`classifier` = Some("assembly")) 
} // add classifier 

, а затем вам г издательская задача:

lazy val publishingSettings = addArtifact(artifact in (Compile, assembly), assembly) ++ Seq(
    publishTo := /* your repository settings */ 
) 

Вызов assembly, чтобы получить все-в-одном JAR-файл или опубликовать опубликовать его в репозиторий. Это должно работать

+0

Возможно, я что-то пропустил, возможно, потому, что я использовал для C, C++ и C#. Но какой смысл Scala, если я не могу использовать это сделать что-то, что будет работать за пределами Eclipse, если я не загружу больше плагинов и не изменю определения сборки вручную? –

+0

Я уверен, что вы можете, я просто не знаю, как собрать проект в Eclipse, потому что я работаю с IDEA с sbt-plugin. И то, как вы строите/собираете свой проект, не имеет никакого отношения к самому языку – 4lex1v

 Смежные вопросы

  • Нет связанных вопросов^_^