【问题标题】:Error when generating thrift files contains Union using scrooge生成 thrift 文件时出错包含使用 scrooge 的 Union
【发布时间】:2013-10-21 19:17:02
【问题描述】:

我用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)

以下是我在项目中选择的版本(可以看我的项目here):

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

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

有什么建议吗?谢谢

【问题讨论】:

    标签: scala code-generation thrift finagle scrooge


    【解决方案1】:

    Changelog 表示从 3.0.1 开始支持联合,并在 3.0.4 和 3.9.1 中进行了一些修复,因此唯一的建议是找到如何更新 scrooge 版本。请注意,sbt-scooge 允许您使用 scroogeVersion 设置选择不同于默认的 Scrooge 版本。

    【讨论】:

    猜你喜欢
    • 2014-12-01
    • 2015-09-02
    • 1970-01-01
    • 2018-01-14
    • 2014-11-27
    • 2016-09-23
    • 1970-01-01
    • 2012-02-03
    • 2015-12-10
    相关资源
    最近更新 更多