2

このトピックに関して私が見つけた他のすべての質問はかなり古いものです。

sbtプラグインを使用してscala プロジェクトを構築してscala-styleいますが、生成されたコードがある特定のフォルダーを除外する方法が見つかりません。

プラグインが特定のフォルダをチェックしないようにする方法はありますか?

現在、ファイルを手動で編集して追加しています:

// 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 (delimited 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ますか?

4

1 に答える 1

5

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

編集:
除外する各ファイルのパスをチェックする、より「一般的な」ソリューションを追加しました...

于 2017-01-06T16:40:32.767 に答える