Mit diesem SBT-Plug-In können Sie Ihren (Java) Code mit Hilfe des Great Findbugs-Tools analysieren. Es definiert eine findbugs -SBT -Aktion zu diesem Zweck.
Installieren Sie das Plugin, indem Sie Folgendes zu project/plugins.sbt addieren.
addSbtPlugin( " com.github.sbt " % " sbt-findbugs " % " <version> " ) Und führen Sie das Plugin mit sbt findbugs aus. Dadurch wird ein FindBugs-Bericht in target/scala-xx/findugs/report.xml generiert.
Verwenden Sie einfach Scala Inline XML für die Einstellung, zum Beispiel:
findbugsIncludeFilters := Some (< FindBugsFilter >
< Match >
< Class name = " de.johoop.Meep " />
</ Match >
</ FindBugsFilter >)Sie können die Filtereinstellungen auch auf herkömmliche Weise aus Dateien lesen:
findbugsIncludeFilters := Some (baseDirectory.value / " findbugs-include-filters.xml " )Oder wenn Ihre Konfiguration geschliffen und zuvor in einem lokalen Repo veröffentlicht wird:
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 " )
}(Siehe auch die Findbugs -Dokumentation)
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] von Paketen und Klassen.None (was bedeutet: Analysieren Sie alles).findbugsMaxMemory1024findbugsAnalyzeNestedArchivestrue und falsetruefindbugsSortReportByClassNamestrue und falsefalsefindbugsIncludeFiltersNone und Option[Node]None (keine Filter einschließen).findbugsExcludeFiltersNone und Some[Node]None (keine ausschließenden Filter).findbugsAnalyzedPathsbt.PathSeq(classDirectory in Compile value) Vielen Dank an @asflierl und @anishathalye für ihre Beiträge!
Copyright (c) Joachim Hofer & Mitwirkende
Alle Rechte vorbehalten.
Dieses Programm und die dazugehörigen Materialien werden gemäß den Bestimmungen der Eclipse Public Lizenz V1.0 zur Verfügung gestellt, die diese Verteilung begleitet und unter http://www.eclipse.org/legal/epl-v10.html verfügbar ist