1

我用 twitter 的scrooge生成了一个 thrift 服务器,一切运行良好,但是如果我在 thrift 文件中包含联合类型,生成过程将失败:

[error] Exception in thread "main" com.twitter.scrooge.ParseException: [13.1] failure: string matching regex `\z' expected but `u' found
[error]
[error] union union_value{
[error]
[error] ^
[error]     at com.twitter.scrooge.ScroogeParser.parse(ScroogeParser.scala:227)
[error]     at com.twitter.scrooge.ScroogeParser.parseFile(ScroogeParser.scala:235)
[error]     at com.twitter.scrooge.Main$$anonfun$main$2.apply(Main.scala:92)
[error]     at com.twitter.scrooge.Main$$anonfun$main$2.apply(Main.scala:88)
[error]     at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
[error]     at scala.collection.immutable.List.foreach(List.scala:45)
[error]     at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:30)
[error]     at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:42)
[error]     at com.twitter.scrooge.Main$.main(Main.scala:88)
[error]     at com.twitter.scrooge.Main.main(Main.scala)

以下是我在项目中选择的版本(您可以在此处查看我的项目):

sbt 版本:0.11.2
scala 版本:2.9.2
scrooge 插件:addSbtPlugin("com.twitter" %% "sbt11-scrooge" % "3.0.0")
scrooge 运行时:"com.twitter" %% "scrooge-runtime " % "3.1.0"

经过几次尝试,似乎上面是我可以选择的最新 scrooge 版本。

有什么建议吗?谢谢

4

1 回答 1

2

更新日志说从 3.0.1 开始支持联合,并在 3.0.4 和 3.9.1 中进行了一些修复,所以唯一的建议是找到如何更新 scrooge 版本。请注意,sbt-scrooge 允许您选择与默认scroogeVersion设置不同的 Scrooge 版本。

于 2013-10-14T09:20:05.623 回答