Этот плагин SBT позволяет проанализировать ваш (Java) код с помощью отличного инструмента Findbugs. Он определяет действие findbugs SBT для этой цели.
Установите плагин, добавив следующее в project/plugins.sbt :
addSbtPlugin( " com.github.sbt " % " sbt-findbugs " % " <version> " ) А затем запустите плагин с sbt findbugs . Это будет генерировать отчет FindBugs в target/scala-xx/findugs/report.xml .
Просто используйте Scala Inline XML для настройки, например:
findbugsIncludeFilters := Some (< FindBugsFilter >
< Match >
< Class name = " de.johoop.Meep " />
</ Match >
</ FindBugsFilter >)Вы также можете прочитать настройки фильтра из файлов более обычным образом:
findbugsIncludeFilters := Some (baseDirectory.value / " findbugs-include-filters.xml " )Или, когда ваша конфигурация застегнута и ранее опубликована в локальном репо:
findbugsIncludeFilters := {
val configFiles = update.value.select(module = moduleFilter(name = " velvetant-sonar " ))
val configFile = configFiles.headOption flatMap { zippedFile =>
IO .unzip(zippedFile, target.value / " rules " ) find (_.name contains " velvetant-sonar-findbugs.xml " )
}
configFile map scala.xml. XML .loadFile orElse sys.error( " unable to find config file in update report " )
}(См. Также документацию FindBugs)
findbugsReportTypeSome(FindbugsReportType.{Xml, Html, PlainHtml, FancyHtml, FancyHistHtml, Emacs, Xdoc})Some(FindbugsReportType.Xml)findbugsReportPathSome(crossTarget.value / "findbugs" / "report.xml")findbugsPriorityFindbugsPriority.{Relaxed, Low, Medium, High}FindbugsPriority.MediumfindbugsEffortFindbugsEffort.{Minimum, Default, Maximum}FindbugsEffort.DefaultfindbugsOnlyAnalyzeList[String] пакетов и классов.None (значение: анализировать все).findbugsMaxMemory1024findbugsAnalyzeNestedArchivestrue и falsetruefindbugsSortReportByClassNamestrue и falsefalsefindbugsIncludeFiltersNone и Option[Node]None (нет включать фильтры).findbugsExcludeFiltersNone , а Some[Node]None (не исключать фильтры).findbugsAnalyzedPathsbt.PathSeq(classDirectory in Compile value) Спасибо @asflierl и @anishathalye за их вклад!
Copyright (c) Joachim Hofer & Apportors
Все права защищены.
Эта программа и сопровождающие материалы предоставляются в соответствии с условиями публичной лицензии Eclipse V1.0, которая сопровождает это распределение и доступна по адресу http://www.eclipse.org/legal/epl-v10.html