9

我正在尝试按照说明安装 sbt-assembly,以便制作一个可以在未安装 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._ 
4

3 回答 3

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) 看起来像这样:

    导入 AssemblyKeys._
    
    seq(装配设置:_*)
    
    名称:=“我的项目”
    
    版本:=“1.0”
    
    scalaVersion := "2.9.1"
    
    libraryDependencies ++= Seq(
      "org.scalatest" %% "scalatest" % "1.6.1" % "test",
      “公共语言”%“公共语言”%“2.6”
    )
    
    运行中的跟踪级别:= 0
    
    运行中的分叉 := true
    
    scalacOptions ++= Seq("-optimize")
    
    // 下面是编译jar时会运行的类!
    
    程序集中的 mainClass := Some("MyMain")
    
于 2012-02-16T09:24:28.073 回答
3

确保您周围没有项目/插件文件夹。这可能会阻止其他指定插件的机制起作用。

于 2011-12-13T16:40:16.987 回答
1

您不应该将插件设置导入build.sbt基本配置):1)build.sbt不是普通的 Scala 源文件 2)插件设置是预先导入的。

所以你应该做

seq(assemblySettings: _*)

仅当您使用完整/扩展构建配置时才需要导入。

于 2011-12-13T10:28:28.027 回答