使用sbt 0.11.2安装sbt-assembly

时间:2011-12-12 06:56:41

标签: scala jar sbt sbt-assembly

我正在尝试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._ 

3 个答案:

答案 0 :(得分:12)

  1. 通过键入

    确保您运行的sbt版本至少为0.11

    $ sbt sbt-version

    在bash提示符下。

  2. 确保您已设置插件文件,如下所示:

    $ cat sbt/project/plugins.sbt
    
    addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.7.2")
    
  3. 使您的构建文件(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: _*)

只有在使用完整/扩展构建配置时才需要导入。