# Checkstyle Home Page

## Overview

Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. It automates the process of checking Java code to spare humans of this boring (but important) task. This makes it ideal for projects that want to enforce a coding standard.

Checkstyle is highly configurable and can be made to support almost any coding standard. An example configuration file is supplied supporting the Sun Code Conventions. As well, other sample configuration files are supplied for other well known conventions.

A good example of a report that can be produced using Checkstyle and Maven can be seen here.

After many months of development Checkstyle version 3 has been released. There have been many improvements that we strongly encourage you to upgrade. However if you are stuck on the last 2.4 release, the old documentation is available here. Be sure to read the section about upgrading to 3.x.

## Features

The things that Checkstyle can check for are:

- Javadoc Comments
- Naming Conventions
- Headers
- Imports
- Size Violations
- Whitespace
- Modifiers
- Blocks
- Coding Problems
- Class Design
- Duplicate Code
- Metrics Checks
- Miscellaneous Checks
- Optional Checks

## Download

The latest release of Checkstyle can be downloaded from the SourceForge download page.

If you want to live on the bleeding edge, you can checkout the current development code from CVS and compile yourself.

## Upgrading to release 3.x

As of release 3.0 Checkstyle has changed it's configuration system. The configuration file is now an XML file that configures a tree of check modules. The Checkstyle 2 configuration files (based on properties) are not supported in Checkstyle 3. Please consult the documentation to learn about the new configuration file format.

## Related Tools

Checkstyle is most useful if you integrate it in your build process or your development environment. The distribution includes:

- An Ant task.
- A command line tool.

Additionally plug-ins are written by third-parties. Currently they are typically based on the Checkstyle 2.4 release. The known plug-ins are:

- David Schneider has written a plug-in to integrate Checkstyle with Eclipse/WSAD. It is available from http://eclipse-cs.sourceforge.net/.
- Marco van Meegen has written a plug-in to integrate Checkstyle with Eclipse/WSAD. It is available from http://www.mvmsoft.de/content/plugins/checkclipse/checkclipse.htm.
- Mark Lussier has written a plug-in to integrate Checkstyle with IntelliJ IDEA. It is available from http://www.intellij.org/twiki/bin/view/Main/JetStylePlugin.
- Darrel King has written a plug-in to integrate Checkstyle with Borland JBuilder. It is available from http://www.pautinka.com/.
- Henri Tremblay has written JBCS, another plug-in to integrate Checkstyle with Borland JBuilder. It is available via the JBCS Sourceforge Project Page.
- The Maven project management system provides support for Checkstyle. Configuration documentation and an example report are also available.
- Xandy Johnson has written a file-type plug-in to integrate Checkstyle with the Vim editor. It is available from here.
- Todd Papaioannou has written CheckStylePlugin to integrate Checkstyle with the very cool jEdit editor.
- Paul Goulbourn has written nbCheckStyle, a module to integrate Checkstyle with NetBeans.
- The Krysalis Centipede build system provides a plug-in for Checkstyle. Documentation is available from http://www.krysalis.org/centipede/centipede/.
- Angus Chan has written jbCheckStyle, an Open Tool for JBuilder.
- Markus Mohnen has written a nice interface to Checkstyle for the Emacs JDE. It is now part of the standard JDEE distribution.
- Rick Giles has written a BlueJ extension for Checkstyle. It is available here.

Martin Smith has written instructions on how to set-up Checkstyle with the SlickEdit editor.

If you have written a plugin for other IDEs, please let us know, so we can provide a link here.

Copyright © 2001-2003 Oliver Burn. All rights Reserved.