2017-09-21 17 views
1

sbtビルド中に上位レベルの設定(yamlと言うことができます)に基づいてxmlファイルを生成したい場合は、sbt-native-packagerによってtarファイルにパッケージ化します。それを達成する最も簡単な方法は何でしょうか?sbtビルド時にxmlファイルを生成

私が考えることの1つの方法は、プロジェクト/ build.sbtにtwirlを追加し、それを使ってカスタムタスクを作成することです。それを行うための簡単な方法がありますか?

+0

Scalaはのためのツールに同梱されるように使用XMLですが、2.11以降はXMLライブラリは分離されています。だからおそらくあなたは何かをとにかく入れなければならないでしょう。それはあなたの好みに合わせて、https://github.com/scala/scala-xml – michaJlS

答えて

1

twirlを使用するには、あなたのプロジェクトビルドビルドにプラグインとしてtwirlを追加する必要があります。これは少しメタですが、あなたのtwirlファイルの場所は少し不気味です(projcet/src/main/twirl)。私はそれをやったことがありますが、私の意見では、ほとんどのユースケースではそれだけの価値はありません。

代わりにscala-xmlを使用します。 sbt 0.13(つまりScala 2.10)を使用している場合は、xmlをScalaコードに直接埋め込むことができます。そうでなければsbt 1.0の場合はにscala-xmlの依存関係を追加する必要があります(おそらくsbt 1.0はすでにscala-xml、わからない)。

ここでXMLを生成するタスクの例です:

https://github.com/lagom/lagom/blob/4a75ab0773b2cc3f55b6c5fae3f96ba08ddcf4c0/project/SbtMavenPlugin.scala#L47

下にスクロールしてScalaでXMLを埋め込む例を参照してください:

https://github.com/lagom/lagom/blob/4a75ab0773b2cc3f55b6c5fae3f96ba08ddcf4c0/project/SbtMavenPlugin.scala#L158-L162

関連する問題