1

PlayFrameworkを使用して作成されたサーバーのトランスポートとしてthriftを使用することを検討しています。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 に答える