如何使用sbt 0.13的sbt-scalabuff插件?

Ale*_*yna 2 scala protocol-buffers sbt

我正在尝试使用sbt-scalabuff插件,但是sbt一直在抱怨无法找到该插件.

插件文档也没有说明解析器URL.该插件是否已弃用或我的Scala版本不受支持?

细节:

com.github.sbt:sbt-scalabuff:0.2 (sbtVersion=0.13, scalaVersion=2.10)
Run Code Online (Sandbox Code Playgroud)

这是我的plugins.sbt:

libraryDependencies += "net.sandrogrzicic" %% "scalabuff-runtime" % "1.3.6"

addSbtPlugin("com.github.sbt" %% "sbt-scalabuff" % "0.2")
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪的一部分:

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
Run Code Online (Sandbox Code Playgroud)

Jac*_*ski 5

sbt-scalabuff插件没有发布到任何已知存储库的插件jar,sbt可以用于您的配置 - sbtVersion=0.13scalaVersion=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")
Run Code Online (Sandbox Code Playgroud)

然后,您应该project/build.properties按如下方式指定sbt的版本:

sbt.version=0.12.4
Run Code Online (Sandbox Code Playgroud)

或者只是使用sbt-launch 0.12.4.

在sbt控制台中,您可以使用scalabuff任务或设置:scalabuff-version,scalabuff-mainscalabuff-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
Run Code Online (Sandbox Code Playgroud)

请参阅GitHub存储库中的scalabuff.ScalaBuffPlugin对象.

我还必须更改构建对象(如用法部分中所述)以使用以下插件设置项目import sbt._:

import sbt._
import scalabuff.ScalaBuffPlugin._

object build extends Build {
  lazy val root = Project(
    "main",
    file("."),
    settings = Defaults.defaultSettings ++ scalabuffSettings
  ).configs(ScalaBuff)
}
Run Code Online (Sandbox Code Playgroud)