从scalastyle sbt插件中排除文件夹

时间:2017-01-06 15:23:26

标签: scala sbt scalastyle

我在这个主题上发现的所有其他问题都很陈旧。 我正在使用sbtscala-style插件构建一个scala项目,但我无法找到一种方法来排除我生成代码的特定文件夹。

有没有办法强制插件不检查该特定文件夹?

现在我手动编辑文件并添加:

// scalastyle:off

位于文件的顶部,但这非常烦人。

在官方网站http://www.scalastyle.org/sbt.html中,我找不到任何文档,虽然看起来实际上可以从中排除路径/文件。

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

所以看起来我们实际上可以通过:

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 个答案:

答案 0 :(得分:2)

你可以获得&#34; src / main / scala&#34;下的所有文件/目录。并过滤掉你的目录:

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))
    }
  )

修改
我已经添加了更多&#34;泛型&#34;解决方案,它检查要排除的每个文件的路径......