Инкрементная компиляция SBT-web с файловыми зависимостями

Я пытаюсь написать плагин set-web, который компилирует файлы sass. Я придерживаюсь соглашения о том, что файлы с именами, начинающимися с «_», не компилируются напрямую, но их можно включать в другие файлы. Я попытался сделать это, используя следующий файловый фильтр:

excludeFilter in sassify := HiddenFileFilter || "_*"

Измененные исходные файлы затем компилируются как:

val results = incremental.syncIncremental((streams in Assets).value.cacheDirectory / "run", sources) {
  modifiedSources: Seq[File] =>
    if (modifiedSources)
      streams.value.log.info(s"Sass compiling on ${modifiedSources} source(s)")

    val compilationResults: Map[File, (OpResult, Seq[Problem])] = modifiedSources
      .map(inputFile =>
        inputFile -> doCompile(inputFile)
      ).toMap

    if (compilationResults.nonEmpty)
      streams.value.log.info(s"Sass compilation done. Compiled ${compilationResults.size} file(s).")

    (compilationResults.mapValues(_._1), compilationProblems.values.flatMap(_._2))
}

Обратите внимание: когда функция doCompile возвращает OpSuccess, я удостоверяюсь, что любой включенный файл включен в параметр readFiles.

К сожалению, при изменении одного из импортированных файлов (начиная с _) включаемый файл не перекомпилируется. Есть идеи, как я могу это исправить?

Я использую scala 2.11.7 и sbt-web 1.2.2.


person irundaia    schedule 19.11.2015    source источник


Ответы (1)


Оказывается, путь к включенным файлам был неверным. После исправления этого добавочная компиляция включенных файлов работала отлично.

person irundaia    schedule 27.12.2015