Значение sbt не найдено addSbtPlugin при установке onejar-плагина

Я пытаюсь установить однобарабанный плагин sbt, но я получаю следующую ошибку:

sbt/project/plugins/plugins.sbt:5: error: not found: value addSbtPlugin
addSbtPlugin("com.github.retronym" % "sbt-onejar" % "0.6")

Вот соответствующее содержимое моего файла sbt/build.sbt:

seq(com.github.retronym.SbtOneJar.oneJarSettings: _*)

name := "dsg_nlp"

version := "0.11"

scalaVersion := "2.9.1"

libraryDependencies ++= Seq( "org.scalatest" %% "scalatest" % "1.6.1" % "test" )
libraryDependencies += "commons-lang" % "commons-lang" % "2.6"

traceLevel in run := 0

fork in run := true

javaOptions in run ++= Seq("-Xmx7G", "-agentlib:hprof=cpu=samples,depth=12", "-server", "-enableassertions")

scalacOptions ++= Seq("-optimize")

mainClass in (one-jar, Compile, packageBin) := Some("Test")

И содержимое моего файла project/plugins/plugins.sbt:

resolvers += "retronym-releases" at "http://retronym.github.com/repo/releases"

resolvers += "retronym-snapshots" at "http://retronym.github.com/repo/snapshots"

addSbtPlugin("com.github.retronym" % "sbt-onejar" % "0.6")

Ответ 1

Я бы предложил следующие изменения в коде выше:

  • Убедитесь, что у вас есть только одна настройка для каждой строки. Итак, раскол
 

   libraryDependencies ++= Seq( "org.scalatest" %% "scalatest" % "1.6.1" % "test" )

   libraryDependencies += "commons-lang" % "commons-lang" % "2.6"
   

в две строки.

  • Последняя строка должна читать

    mainClass in oneJar := Some("Test")

    если вы хотите использовать другой mainClass для oneJar-Plugin. Если он такой же, как в области компиляции. Вы также можете написать это как

    mainClass in Compile := Some("Test")

    но не указывайте оба.

Структура каталога проекта должна выглядеть следующим образом:

Project-Root /
 |-- build.sbt
 |-- project/plugins.sbt

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