2

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

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

<play root>/
  app/
    protobuf/
      myfile.proto
    controllers/
      Application.scala
  ...

一些要求如下:

  • 生成的源代码不应包含在 git 中
  • Heroku必须能够在部署期间编译 protobuf
4

1 回答 1

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")

构建.sbt

// must be at top of file

import sbtprotobuf.{ProtobufPlugin=>PB}

seq(PB.protobufSettings: _*)

javaSource in PB.protobufConfig <<= (sourceManaged in Compile)

此配置将需要 protobufsapp/protobuf并将它们放置在托管(非版本控制)源目录中。

警告- 不要你的 protobuf 文件提供包名messages,它会干扰 Play,你会得到 i18n 错误。

于 2012-08-25T22:13:32.183 回答