我正在考虑使用thrift作为使用play框架编写的服务器的传输。 Thrift必须将IDL文件转换为java源文件。使用典型的构建过程(例如ant),我知道如何在进入主编译步骤之前创建生成的源。由于Play控制了编译过程,我不确定如何将生成的源注入构建过程,或者即使可能。有没有办法为Play创建额外的构建步骤,还是只需要确保我的thrift文件是手动更新的?
答案 0 :(得分:0)
Play 2使用SBT作为构建工具,因此您可以使用完整的SBT电源: http://www.scala-sbt.org/release/docs/Howto/generatefiles.html
在setup()中添加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
}
)