Esse plug-in SBT permite analisar seu código (Java) com a ajuda da ferramenta Great FindBugs. Ele define uma ação findbugs SBT para esse fim.
Instale o plug -in adicionando o seguinte ao project/plugins.sbt :
addSbtPlugin( " com.github.sbt " % " sbt-findbugs " % " <version> " ) E depois execute o plug -in com sbt findbugs . Isso gerará um relatório FindBugs no target/scala-xx/findugs/report.xml .
Basta usar o Scala Inline XML para a configuração, por exemplo:
findbugsIncludeFilters := Some (< FindBugsFilter >
< Match >
< Class name = " de.johoop.Meep " />
</ Match >
</ FindBugsFilter >)Você também pode ler as configurações do filtro dos arquivos de uma maneira mais convencional:
findbugsIncludeFilters := Some (baseDirectory.value / " findbugs-include-filters.xml " )Ou, quando sua configuração é fechada e publicada anteriormente em um repositório local:
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 " )
}(Veja também a documentação do 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] de pacotes e classes.None (Significado: Analise tudo).findbugsMaxMemory1024findbugsAnalyzeNestedArchivestrue e falsetruefindbugsSortReportByClassNamestrue e falsefalsefindbugsIncludeFiltersNone e Option[Node]None (não inclui filtros).findbugsExcludeFiltersNone e Some[Node]None (sem exclusão de filtros).findbugsAnalyzedPathsbt.PathSeq(classDirectory in Compile value) Obrigado a @asflierl e @anishathalye por suas contribuições!
Copyright (C) Joachim Hofer e colaboradores
Todos os direitos reservados.
Este programa e os materiais que o acompanham são disponibilizados nos termos da licença pública Eclipse v1.0, que acompanha essa distribuição e está disponível em http://www.eclipse.org/legal/epl-v10.html