Как использовать плагин sbt-scalabuff с sbt 0.13?
Я пытаюсь использовать SBT-scalabuff plugin , но sbt продолжает жаловаться, что плагин не может быть найден.
Документация плагина также не указывает url-адрес решателя. Это плагин устарел или скала моя версия не поддерживается?
Подробности:
com.github.sbt:sbt-scalabuff:0.2 (sbtVersion=0.13, scalaVersion=2.10)
Вот мой plugins.sbt
:
libraryDependencies += "net.sandrogrzicic" %% "scalabuff-runtime" % "1.3.6"
addSbtPlugin("com.github.sbt" %% "sbt-scalabuff" % "0.2")
Вот часть трассировки стека:
sbt.ResolveException: unresolved dependency: com.github.sbt#sbt-scalabuff;0.2: not found
at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:213)
at sbt.IvyActions$$anonfun$update$1.apply(IvyActions.scala:122)
at sbt.IvyActions$$anonfun$update$1.apply(IvyActions.scala:121)
at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:116)
at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:116)
at sbt.IvySbt$$anonfun$withIvy$1.apply(Ivy.scala:104)
at sbt.IvySbt.sbt$IvySbt$$action$1(Ivy.scala:51)
at sbt.IvySbt$$anon$3.call(Ivy.scala:60)
...
[error] (*:update) sbt.ResolveException: unresolved dependency: com.github.sbt#sbt-scalabuff;0.2: not found
1 ответ:
Плагин sbt-scalabuff не имеет jar плагина, опубликованного в любом известном репозитории, который sbt мог бы использовать для вашей конфигурации -
sbtVersion=0.13
иscalaVersion=2.10
.Я также сомневаюсь, что плагин поддерживает sbt
0.13
(Несколько моих попыток с треском провалились, когда я сам скомпилировал плагин, чтобы использовать версию).Похоже, что ваши единственные варианты-понизить sbt до
0.12.4
или перенести плагин в0.13
.С момента публикации плагина в репозитории
Resolver.sbtPluginRepo("releases")
, то есть http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases как http://dl.bintray.com/sbt/sbt-plugin-releases/com.github.sbt/sbt-scalabuff/scala_2.10/sbt_0.12/ вам придется использовать версию sbt.Используйте следующее в
project/sbt-scalabuff.sbt
:addSbtPlugin("com.github.sbt" %% "sbt-scalabuff" % "0.2")
Затем вы должны указать версию sbt в
project/build.properties
следующим образом:sbt.version=0.12.4
Или просто используйте sbt-launch 0.12.4 .
Когда вы находитесь в консоли sbt, вы можете использовать задачу
scalabuff
или настройки:scalabuff-version
,scalabuff-main
иscalabuff-args
.> sbt-version [info] 0.12.4 > about [info] This is sbt 0.12.4 [info] The current project is {file:/Users/jacek/sandbox/sbt-scalabuff-test-project/}main [info] The current project is built against Scala 2.9.2 [info] Available Plugins: org.sbtidea.SbtIdeaPlugin, com.timushev.sbt.updates.UpdatesPlugin, scalabuff.ScalaBuffPlugin [info] sbt, sbt plugins, and build definitions are using Scala 2.9.2 > scalabuff-version [info] 1.1.1 > help scalabuff Generate Scala sources from protocol buffers definitions > scalabuff-args [info] List() > scalabuff-main [info] net.sandrogrzicic.scalabuff.compiler.ScalaBuff
Смотрите скалябуфф.ScalaBuffPlugin объект в репозитории GitHub.
Мне также пришлось изменить объект сборки (как описано в разделе Usage), чтобы настроить проект с плагином на
import sbt._
:import sbt._ import scalabuff.ScalaBuffPlugin._ object build extends Build { lazy val root = Project( "main", file("."), settings = Defaults.defaultSettings ++ scalabuffSettings ).configs(ScalaBuff) }