установка sbt-assembly с sbt 0.11.2

Я пытаюсь установите sbt-assembly, следуя инструкциям сделать отдельно стоящий опарник который может побежать на компьютере без установленного scala.

до сих пор это шаги, которые я предпринял.

Я создал плагинов.sbt файл:

$ cat sbt/project/plugins.sbt 
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.7.2")

и я добавил следующее К началу моей сборки.sbt файл:

$ head -n3 sbt/build.sbt 
import AssemblyKeys._ // put this at the top of the file

seq(assemblySettings: _*)

но когда я запускаю SBT, я получаю следующую ошибку:

sbt/build.sbt:1: error: not found: value AssemblyKeys
import AssemblyKeys._ 

3 ответов


  1. убедитесь, что вы используете версию sbt по крайней мере 0.11, введя

    $ sbt sbt-version

    в приглашении bash.

  2. убедитесь, что файл плагинов настроен следующим образом:

    $ cat sbt/project/plugins.sbt
    
    addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.7.2")
    
  3. сделать свой файл build (build.sbt) выглядеть так:

    import AssemblyKeys._ 
    
    seq(assemblySettings: _*)
    
    name := "my_project"
    
    version := "1.0"
    
    scalaVersion := "2.9.1"
    
    libraryDependencies ++= Seq(
      "org.scalatest" %% "scalatest" % "1.6.1" % "test",
      "commons-lang" % "commons-lang" % "2.6"
    )
    
    traceLevel in run := 0
    
    fork in run := true
    
    scalacOptions ++= Seq("-optimize")
    
    // The following is the class that will run when the jar is compiled!
    
    mainClass in assembly := Some("MyMain")
    

убедитесь, что у вас нет папки project/plugins, лежащей вокруг. Это может помешать работе других механизмов указания плагинов.


вы не должны импортировать настройки плагина в build.sbt (базовая конфигурация): 1) build.sbt не является обычным исходным файлом Scala 2) настройки плагина предварительно импортированы.

Так что вы просто должны сделать

seq(assemblySettings: _*)

импорт требуется только при использовании полная / расширенная конфигурация сборки.