Spotify Checkstyle Configuration
This project provides a default configuration for checkstyle at Spotify.
To use it, configure your maven-checkstyle-plugin like so:
<plugin>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.17</version>
<dependencies>
<dependency>
<groupId>com.spotify.checkstyle</groupId>
<artifactId>spotify-checkstyle-config</artifactId>
<version>LATEST-VERSION</version>
</dependency>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>8.24</version>
</dependency>
</dependencies>
<configuration>
<configLocation>spotify_checks.xml</configLocation>
<!-- The following parameters are optional: -->
<consoleOutput>true</consoleOutput>
<failOnViolation>true</failOnViolation>
<logViolationsToConsole>true</logViolationsToConsole>
<violationSeverity>error</violationSeverity>
</configuration>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
See the maven-checkstyle-plugin docs for more information about what the configuration parameters mean.
Internally, we have the above configuration in the <pluginManagement/>
section of a company-wide parent pom, meaning that projects only need to specify the below in their <build><plugins>
section:
<plugin>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>
Configuration
Suppressions
The configuration of the checkstyle plugin you get from spotify_checks.xml
tells it to optionally look for a file named suppressions.xml
as per the SuppressionFilter docs. This means you can configure suppressions by providing such a file on your project's classpath or in the current directory where you build it - note that for multi-module projects, it's probably a good idea to use something like this solution to share the configuration among each sub-module.
IDEA support
There is a configuration file for IntelliJ IDEA that you can import into your project.
Code of conduct
This project adheres to the Open Code of Conduct. By participating, you are expected to honor this code.