1

我正在考虑使用 thrift 作为使用 play 框架编写的服务器的传输。Thrift 必须将 IDL 文件转换为 java 源代码。通过典型的构建过程(例如 ant),我知道如何在进入主编译步骤之前创建生成的源代码。由于 Play 控制了编译过程,我不确定如何将生成的源代码注入构建过程,或者即使有可能。有没有办法为 Play 创建额外的构建步骤,还是我只需要确保手动更新我的 thrift 文件?

4

1 回答 1

0

Play 2 使用 SBT 作为构建工具,因此您可以使用完整的 SBT 功能: http ://www.scala-sbt.org/release/docs/Howto/generatefiles.html

在 setting() 块中添加 Build.scala 源生成器:

val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
  sourceGenerators in Compile <+= sourceManaged in Compile map { dir =>
    //example for one scala file, call your thrift generation here for multiple files
    val file = dir / "demo" / "Test.scala"
    IO.write(file, """object Test extends App { println("Hi") }""")

    Seq(file) //list your generated files here
   }
)
于 2012-11-21T08:07:03.860 回答