Исключая папку из плагина scalastyle sbt

Все остальные вопросы, которые я нашел по этой теме, довольно старые. Я строю проект Scala с sbt и scala-style Плагин, но я не могу найти способ исключить определенную папку, где у меня есть сгенерированный код.

Есть ли способ заставить плагин не проверять эту конкретную папку?

Сейчас я редактирую файлы вручную и добавляю:

// scalastyle:off

в верхней части файла, но это довольно раздражает.

На официальном сайте http://www.scalastyle.org/sbt.html я не смог найти никакой документации, хотя кажется, что на самом деле можно исключить пути / файлы из нее.

https://github.com/scalastyle/scalastyle/blob/e19b54eacb6502b47b1f84d7b2a6b5d33f3993bc/src/main/scala/org/scalastyle/Main.scala

так что кажется, что мы действительно можем передать:

println(" -x, --excludedFiles STRING      regular expressions to exclude file paths (delimitted by semicolons)")

В моем build.sbt Я звоню:

lazy val compileScalastyle = taskKey[Unit]("compileScalastyle")
compileScalastyle := org.scalastyle.sbt.ScalastylePlugin.scalastyle.in(Compile).toTask("").value
(compile in Compile) <<= (compile in Compile) dependsOn compileScalastyle

Есть ли способ добиться этого с sbt plugin?

1 ответ

Решение

Вы можете получить все файлы / каталоги в "src/main/scala" и отфильтровать ваш каталог:

lazy val root = (project in file(".")).
  settings(
    (scalastyleSources in Compile) := {
      // all .scala files in "src/main/scala"
      val scalaSourceFiles = ((scalaSource in Compile).value ** "*.scala").get    
      val fSep = java.io.File.separator // "/" or "\"
      val dirNameToExclude = "com" + fSep + "folder_to_exclude" // "com/folder_to_exclude"
      scalaSourceFiles.filterNot(_.getAbsolutePath.contains(dirNameToExclude))
    }
  )

РЕДАКТИРОВАТЬ:
Я добавил более "универсальное" решение, где он проверяет путь каждого файла, чтобы исключить...

Другие вопросы по тегам