用sbt替换文本文件中的变量

时间:2018-12-29 11:15:54

标签: sbt

我有旧版SBT构建文件。作为构建过程的一部分,我需要替换文本文件中的一个特定字符串。 特别是在public / index.html文件中的Play Framework应用程序中,我需要将占位符字符串替换为GA UUID代码。

2 个答案:

答案 0 :(得分:1)

您可以编写一个自定义资源生成器来读取文件,替换占位符并将其写入文件。

resourceGenerators in Compile += Def.task {
  val content = IO.read(resourceDirectory.value / "index.html")
  val out = (resourceManaged in Compile).value / "index.html"
  IO.write(out, content.replace("<build-time>", System.currentTimeMillis.toString))
  Seq(out)
}

答案 1 :(得分:1)

实际上,已确认的解决方案中缺少一个额外的“正在编译”(由Aki提供):

resourceGenerators in Compile += Def.task {
  val content = IO.read((resourceDirectory in Compile).value / "index.html")
  val out = (resourceManaged in Compile).value / "index.html"
  IO.write(out, content.replace("<build-time>", System.currentTimeMillis.toString))
  Seq(out)
}

我本应该添加评论,但我的“声誉”不足:)