Skip to content

TinaRanic/spotify-checkstyle-config

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spotify Checkstyle Configuration

Maven Central License

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>THEVERSIONYOUWANT</version>
       </dependency>
       <dependency>
         <groupId>com.puppycrawl.tools</groupId>
         <artifactId>checkstyle</artifactId>
         <version>6.19</version>
       </dependency>
     </dependencies>
     <configuration>
       <configLocation>spotify_checks.xml</configLocation>
       <!-- The things above this line are required, the rest is 'bonus' -->
       <!------------------------------------------------------------------>
       <consoleOutput>true</consoleOutput>
       <!-- Remove or switch to false to keep building even with checkstyle errors -->
       <failOnViolation>true</failOnViolation>
       <logViolationsToConsole>true</logViolationsToConsole>
       <!-- change to 'warning' to be more strict about following checkstyle conventions -->
       <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 settings 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.

About

The Spotify checkstyle configuration

Resources

License

Stars

Watchers

Forks

Packages

No packages published