Это как-то продолжение этого вопроса.
Когда я создаю пакет Scala с sbt, я могу запустить его, используя один из следующих способов:
-
просто набрав
run
в консоли sbt -
или создав файл jar (используя
one-jar
илиassembly
) и запустив эту банку в системной консоли, набравjava -jar myjar.jar
Но я не знаю, как
-
Запустите мой пакет из программы Scala? (не консоль sbt Scala, в которой все работает нормально, набрав
import mypackage._
) -
используйте мой пакет Scala в другом проекте? например, импортируя
myjar
в другой проект?
EDIT: вы можете забыть мои вопросы ниже sbt-start-script
, потому что теперь я использую sbt-native-packager
(Я пробовал это сейчас, и это работает, но мои предыдущие вопросы остаются открытыми).
Я попытался использовать sbt-start-script, но не удалось. target/start
script хорошо создан, но я получаю такие ошибки:
$ sh target/start
target/start: 2: target/start: Bad substitution
Exception in thread "main" java.lang.NoClassDefFoundError: Hi
Caused by: java.lang.ClassNotFoundException: Hi
...
Здесь у меня просто есть файл main.scala
в папке src/main/scala
, и это:
object Hi { def main(args: Array[String]) = println("Hi!") }
Я использую эти настройки в build.sbt
:
import com.typesafe.sbt.SbtStartScript
seq(SbtStartScript.startScriptForClassesSettings: _*)