Есть ли у sbt что-то вроде задачи gradle's processResources с поддержкой ReplaceTokens?

Мы переходим в Scala / SBT из стека Java / Gradle. В наших сборках gradle использовалась задача с именем processResources и некоторые фильтры Ant, называемые ReplaceTokens, для динамической замены токенов в проверенном файле .properties без фактического изменения файла .properties (просто путем изменения выходных данных). Задача gradle выглядит так:

processResources {
  def whoami = System.getProperty( 'user.name' );
  def hostname = InetAddress.getLocalHost().getHostName()
  def buildTimestamp = new Date().format('yyyy-MM-dd HH:mm:ss z')

  filter ReplaceTokens, tokens: [
          "buildsig.version" : project.version,
          "buildsig.classifier" : project.classifier,
          "buildsig.timestamp" : buildTimestamp,
          "buildsig.user" : whoami,
          "buildsig.system" : hostname,
          "buildsig.tag" : buildTag
      ]
}

Эта задача находит все файлы шаблонов в каталоге src / main / resources, выполняет необходимые замены и выводит результаты в build / resources / main. Другими словами, он преобразует src / main / resources / buildsig.properties из ...

[email protected]@
[email protected]@
[email protected]@
[email protected]@
[email protected]@
[email protected]@

... для сборки / resources / main / buildsig.properties ...

buildsig.version=1.6.5
buildsig.classifier=RELEASE
buildsig.timestamp=2013-05-06 09:46:52 PDT
buildsig.user=jenkins
buildsig.system=bobk-mbp.local
buildsig.tag=dev

Который, в конечном счете, находит свой путь в WAR-файле в WEB-INF / classes / buildsig.properties. Это работает как чемпион для записи конкретной информации о сборке в файл свойств, который загружается из пути к классам во время выполнения.

Что я делаю в SBT, чтобы сделать что-то подобное? Я новичок в Scala / SBT, поэтому, пожалуйста, прости меня, если это кажется глупым вопросом. В конце концов, мне нужно средство извлечения некоторой информации из среды, в которой я строю, и помещения этой информации в файл свойств, который загружается в classpath во время выполнения. Мы очень ценим любые идеи, которые вы можете дать, чтобы помочь мне сделать это.

Ответы на вопрос(2)

Ваш ответ на вопрос