在sbt构建期间生成xml文件

时间:2017-09-21 12:03:36

标签: scala sbt

我想在sbt构建期间基于更高级别的配置(比如说yaml)生成xml文件,然后将它们打包到tar文件中(通过sbt-native-packager)。实现这一目标最简单的方法是什么?

我能想到的一种方法是向project / build.sbt添加旋转,然后使用它来编写自定义任务。有没有更简单的方法呢?

1 个答案:

答案 0 :(得分:1)

要使用旋转,你需要添加旋转作为插件到你的项目构建版本 - 它有点元,你的旋转文件的位置将有点不直观(projcet/src/main/twirl)。我已经完成了,但在我看来,对于大多数用例来说,这是不值得的。

我只想使用scala-xml。如果使用sbt 0.13(即Scala 2.10),那么你可以直接在你的Scala代码中嵌入xml,否则对于sbt 1.0,你可能需要在scala-xml中添加对project/plugins.sbt的依赖(虽然可能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