我正在尝试install sbt-assembly by following the instructions,以便制作一个可以在没有安装scala的计算机上运行的独立jar。
到目前为止,这些都是我采取的步骤。
我创建了一个plugins.sbt文件:
$ cat sbt/project/plugins.sbt
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.7.2")
我在build.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._
答案 0 :(得分:12)
通过键入
确保您运行的sbt版本至少为0.11 $ sbt sbt-version
在bash提示符下。
确保您已设置插件文件,如下所示:
$ cat sbt/project/plugins.sbt addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.7.2")
使您的构建文件(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")
答案 1 :(得分:3)
确保您没有项目/插件文件夹。这可能会阻止指定插件的其他机制起作用。
答案 2 :(得分:1)
您不应将插件设置导入build.sbt
(基本配置):1)build.sbt
不是普通的Scala源文件2)插件设置是预先导入的
所以你应该做
seq(assemblySettings: _*)
只有在使用完整/扩展构建配置时才需要导入。