我怎样才能玩我的游戏!2.0应用程序自动编译协议缓冲区?

Jac*_*ter 2 git scala heroku sbt playframework-2.0

我有一些.proto文件用于我的项目,我使用生成的Java源代码.我希望Play能够在项目编译期间自动编译并包含这些文件.

理想情况下,我会将.proto文件保存在app目录中,如下所示:

<play root>/
  app/
    protobuf/
      myfile.proto
    controllers/
      Application.scala
  ...
Run Code Online (Sandbox Code Playgroud)

一些要求如下:

  • 生成的源应该被包括在GIT中
  • Heroku 必须能够在部署期间编译protobufs

Jac*_*ter 7

你可以使用sbt-protobuf.您需要按如下方式配置几个文件(使用sbt 0.11或更高版本):

项目/ plugins.sbt

resolvers += "gseitz@github" at "http://gseitz.github.com/maven/"

addSbtPlugin("com.github.gseitz" % "sbt-protobuf" % "0.2.2")
Run Code Online (Sandbox Code Playgroud)

build.sbt

// must be at top of file

import sbtprotobuf.{ProtobufPlugin=>PB}

seq(PB.protobufSettings: _*)

javaSource in PB.protobufConfig <<= (sourceManaged in Compile)
Run Code Online (Sandbox Code Playgroud)

此配置将期望protobufs app/protobuf并将它们放置在托管(非版本控制)源目录中.

警告 -不要给你的protobuf文件的包名称messages,它会与播放干扰,你会得到国际化的错误所有的地方.