【问题标题】:Generate xml files during sbt build在 sbt 构建期间生成 xml 文件
【发布时间】:2017-10-04 10:42:10
【问题描述】:

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

我能想到的一种方法是将 twirl 添加到 project/build.sbt 中,而不是使用它来编写自定义任务。有更简单的方法吗?

【问题讨论】:

  • Scala 曾经附带 XML 工具,但从 2.11 开始不再使用,xml lib 已被分离出来。所以可能无论如何你都必须包含一些东西,这取决于你的口味github.com/scala/scala-xml

标签: scala sbt


【解决方案1】:

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

我会改为使用scala-xml。如果使用 sbt 0.13(即 Scala 2.10),那么您可以直接将 xml 嵌入到您的 Scala 代码中,否则对于 sbt 1.0,您可能需要在您的 project/plugins.sbt 中添加对 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

【讨论】:

    猜你喜欢
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 2021-06-09
    • 1970-01-01
    • 1970-01-01
    • 2021-07-21
    相关资源
    最近更新 更多