Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
This branch is 1237 commits ahead of gleclaire:master.


Failed to load latest commit information.
Latest commit message
Commit time

Spotbugs Maven Plugin

Java CI Java Integration Tests Maven central Apache 2

Latest Snapshot

Please download latest snapshots from here

Building spotbugs-maven-plugin Requirements

Java 8+ is required for spotbugs analysis.


Maven Mojo Plug-In to generate reports based on the SpotBugs Analyzer

See site page for usage

Special notice

Continue to use 'FindBugsFilter' when needed as the spotbugs project has not yet renamed that to reflect project.


The SpotBugs documentation describes the pom.xml modifications and Maven goals.

Running Tests

Run all tests

mvn -DtestSrc=remote -Prun-its clean install -D"invoker.parallelThreads=4"

Skip tests

mvn -DskipTests=true clean install

Run tests on spotbugs test source code that is local instead of from SpotBugs github repository

mvn -DtestSrc=local -DlocalTestSrc=/opt/spotBugs -Prun-its clean install -D"invoker.parallelThreads=4"

Run selected tests

mvn -DtestSrc=remote -Prun-its -Dinvoker.test=build-*,basic-1,check-nofail clean install -D"invoker.parallelThreads=4"

Run tests in debugger

mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE" -Prun-its clean install 

Run selected tests in debugger

mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE" -Prun-its -Dinvoker.test=build-*,basic-1,check clean install

Run gui with a specific version

mvn com.github.spotbugs:spotbugs-maven-plugin:4.0.0:gui 


Run integration tests

mvn clean install -P run-its -DtestSrc=remote


This plugin is written entirey in groovy. It does have limitations when it comes to groovy in relation to java releases. Every attempt is made to ensure fast releases to pick up groovy changes related to java.

Known issues

The security manager is turned off by default in jdk 18/19 and scheduled from removal in a future java release, therefore to use this plugin with jdk 18/19, the security manager may need turned back on using JAVA_OPTS to See groovy for more details.

If using groovy with same group id (org.codehaus.groovy 3.x or before or org.apache.groovy 4.x or above), an error may occur if not on same version. To alleviate that, make sure groovy artifacts are defined in dependency management in order to force the loaded version correctly on your usage.

Eclipse m2e Integration

The plugin cycles controlled by Eclipse require compilation phase for m2e without further help. This plugin runs verify and during site generation. Therefore Eclipse m2e will show up but not do anything with this plugin alone. In order to have proper execution within Ecipse m2e, use m2e-code-quality plugin for spotbugs.


Maven Mojo Plug-In to generate reports based on the SpotBugs Analyzer







No packages published


  • HTML 49.2%
  • Groovy 48.7%
  • CSS 1.7%
  • Other 0.4%