| <?xml version="1.0" encoding="UTF-8"?> |
| |
| <document xmlns="http://maven.apache.org/XDOC/2.0" |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd"> |
| |
| <head> |
| <title>Checkstyle ${projectVersion}</title> |
| <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"/> |
| <script type="text/javascript" src="js/anchors.js"/> |
| <script type="text/javascript" src="js/google-analytics.js"/> |
| <link rel="icon" href="images/favicon.png" type="image/x-icon" /> |
| <link rel="shortcut icon" href="images/favicon.ico" type="image/ico" /> |
| </head> |
| |
| <body> |
| |
| <section name="Overview"> |
| <p> |
| 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. |
| </p> |
| |
| <p> |
| Checkstyle is highly configurable and can be made to support almost |
| any coding standard. An example configuration files are supplied |
| supporting the <a href="http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html"> |
| Sun Code Conventions</a>, |
| <a href="http://checkstyle.sourceforge.net/reports/google-java-style-20170228.html">Google Java Style</a>. |
| </p> |
| |
| <p> |
| A good example of a report that can be produced using Checkstyle and |
| <a href="http://maven.apache.org/">Maven</a> can be <a |
| href="http://maven.apache.org/plugins/maven-checkstyle-plugin/checkstyle.html">seen here</a>. |
| </p> |
| </section> |
| |
| <section name="Features"> |
| <p> |
| Checkstyle can check many aspects of your source code. |
| It can find class design problems, method design problems. |
| It also has the ability to check code layout and formatting issues. |
| </p> |
| |
| <p> |
| For a detailed list of available checks please refer to the <a |
| href="checks.html">Checks</a> page. |
| </p> |
| </section> |
| |
| <section name="Download"> |
| <p> |
| The latest release of Checkstyle can be downloaded from <a |
| href="https://sourceforge.net/projects/checkstyle/files/checkstyle/">the |
| SourceForge download page</a>, or <a href="http://search.maven.org/#search|gav|1|g%3A%22com.puppycrawl.tools%22%20AND%20a%3A%22checkstyle%22">Maven central</a>. |
| </p> |
| |
| <p> |
| If you want to live on the bleeding edge, you can <a |
| href="https://github.com/checkstyle/checkstyle">checkout</a> |
| the current development code from GitHub and compile |
| yourself. |
| </p> |
| |
| </section> |
| |
| <section name="Backport"> |
| <p> |
| Since Checkstyle 7, some users have been unable to continue upgrading to newer versions |
| of the utility because of the new JDK 1.8 compile requirement. The development team doesn't |
| have the resources to keep updating the utility for older JDKs for those that can't |
| work with the latest version. |
| </p> |
| <p> |
| However, some members of the community have created an unofficial backport of the latest |
| Checkstyle releases to be run with JDKs as old as 1.6. If you wish to continue using new |
| Checkstyle versions on older JDKs, we recommend you either checkout the |
| <a href="https://github.com/rnveach/checkstyle-backport-jre6">github site</a> or the |
| <a href="https://rnveach.github.io/checkstyle-backport-jre6/">documentation site</a> on how |
| to use the backport version of the utility, in place of the official Checkstyle version. |
| </p> |
| </section> |
| |
| <section name="Development Circle"> |
| <p> |
| <b>Releases will happen at the end of each month</b> |
| if functional changes exists in <a href="https://github.com/checkstyle/checkstyle/commits/master">master branch of our repo</a>. |
| For exact day pelase follow our <a href="https://github.com/checkstyle/checkstyle/milestones">milestones</a>. |
| </p> |
| <p> |
| Explanation why we do not follow Semantic Versioning is in <a href="https://github.com/checkstyle/checkstyle/issues/3709">issue #3709</a> |
| </p> |
| </section> |
| |
| <section name="Related Tools"> |
| <p> |
| Checkstyle is most useful if you integrate it in your build process or |
| your development environment. The distribution includes: |
| </p> |
| |
| <ul> |
| <li>An <a href="anttask.html">Ant task</a>.</li> |
| <li>A <a href="cmdline.html">command line</a> interface (CLI).</li> |
| </ul> |
| |
| <p> |
| Additionally plug-ins are written by third-parties. Some of them are |
| still based on the Checkstyle 2.4 release, although there have been |
| many improvements since then. The known plug-ins are: |
| </p> |
| |
| <subsection name="Active Tools" > |
| <table> |
| <tr> |
| <th>IDE / Build tool</th> |
| <th>Main/Initial Author</th> |
| <th>Available from</th> |
| <th>Remarks</th> |
| </tr> |
| <tr> |
| <td> |
| <a href="https://www.atlassian.com/software/bitbucket/server">Bitbucket Server</a> |
| </td> |
| <td>Stephan Bechter</td> |
| <td> |
| <a href="https://marketplace.atlassian.com/plugins/at.apogeum.bitbucket.checkstyle/server/overview"> |
| Checkstyle for Bitbucket Server |
| </a> |
| </td> |
| <td/> |
| </tr> |
| <tr> |
| <td> |
| <a href="https://www.codacy.com/">Codacy</a> |
| </td> |
| <td>João Machado</td> |
| <td> |
| <a href="https://github.com/codacy/codacy-checkstyle/"> |
| codacy-checkstyle |
| </a> |
| </td> |
| <td> |
| Provides analysis per commit and per pull request. Supports CheckStyle config files. |
| </td> |
| </tr> |
| <tr> |
| <td><a href="https://eclipse.org">Eclipse/RAD/RDz</a></td> |
| <td>David Schneider</td> |
| <td> |
| <a href="http://eclipse-cs.sourceforge.net/">Eclipse-CS Home Page</a> |
| </td> |
| <td> |
| In 2007 was awarded |
| <a href="https://eclipse.org/org/press-release/20070306eclipsecommunityawards.php"> |
| Best Open Source Eclipse-based Developer tool |
| </a>. |
| </td> |
| </tr> |
| <tr> |
| <td><a href="https://gradle.org">Gradle</a></td> |
| <td>Hans Dockter (initial author)</td> |
| <td>Checkstyle supported out of the box</td> |
| <td><a href="https://docs.gradle.org/current/userguide/checkstyle_plugin.html">Gradle Checkstyle docs</a></td> |
| </tr> |
| <tr> |
| <td><a href="http://www.jetbrains.com/idea/">IntelliJ IDEA</a></td> |
| <td>James Shiell</td> |
| <td> |
| <a href="https://github.com/jshiell/checkstyle-idea">Checkstyle-idea Project Page</a> |
| </td> |
| <td>Provides real-time and on-demand scanning.</td> |
| </tr> |
| <tr> |
| <td><a href="http://www.jgrasp.org/">jGRASP</a></td> |
| <td>Larry Barowski</td> |
| <td><a href="http://www.jgrasp.org/">jGRASP Home Page</a></td> |
| <td/> |
| </tr> |
| <tr> |
| <td><a href="https://eclipse.org">Eclipse/RAD/RDz</a></td> |
| <td>Roman Ivanov</td> |
| <td> |
| <a href="https://github.com/sevntu-checkstyle">Project Page</a> |
| </td> |
| <td> |
| Extension for Eclipse-CS plugin and also an incubator for |
| Checkstyle checks that are not present in main stream of |
| Checkstyle. See the |
| <a href="https://github.com/sevntu-checkstyle/sevntu.checkstyle/wiki">Wiki</a> |
| and |
| <a href="http://sevntu-checkstyle.github.io/sevntu.checkstyle/">Blog</a> |
| . |
| </td> |
| </tr> |
| <tr> |
| <td><a href="https://eclipse.org">Eclipse/RAD/RDz</a></td> |
| <td>Jan Burkhardt</td> |
| <td> |
| <a href="https://github.com/bjrke/JSR305CheckstylePlugin">Project Page</a> |
| </td> |
| <td> |
| Extension for Eclipse-CS plugin which ensures nullness annotations on methods and constructors (JSR305). |
| </td> |
| </tr> |
| <tr> |
| <td><a href="https://bitbucket.org/atlassian/bamboo-checkstyle-plugin">Bamboo Checkstyle plug-in</a></td> |
| <td>Atlassian (formerly by Ross Rowe and Stephan Paulicke)</td> |
| <td><a href="https://bitbucket.org/atlassian/bamboo-checkstyle-plugin">Bamboo Checkstyle plug-in Home Page</a></td> |
| <td>An add-on that will parse and record CheckStyle reports and report your style violations over time.</td> |
| </tr> |
| <tr> |
| <td> |
| <a href="https://codeclimate.com/">Code Climate</a> |
| </td> |
| <td>Sivakumar Kailasam</td> |
| <td> |
| <a href="https://github.com/sivakumar-kailasam/codeclimate-checkstyle"> |
| codeclimate-checkstyle |
| </a> |
| </td> |
| <td/> |
| </tr> |
| <tr> |
| <td><a href="https://wiki.jenkins.io/display/JENKINS/Checkstyle+Plugin">Jenkins Checkstyle plug-in</a></td> |
| <td/> |
| <td><a href="https://wiki.jenkins.io/display/JENKINS/Checkstyle+Plugin">Jenkins Checkstyle plug-in Home Page</a></td> |
| <td>This plug-in is supported by the Static Analysis Collector plug-in that collects different analysis results and shows the results in aggregated trend graphs.</td> |
| </tr> |
| <tr> |
| <td><a href="http://maven.apache.org/">Maven</a></td> |
| <td>Vincent Massol</td> |
| <td>Checkstyle supported out of the box</td> |
| <td><a href="http://maven.apache.org/plugins/maven-checkstyle-plugin/checkstyle.html">example report</a></td> |
| </tr> |
| <tr> |
| <td><a href="http://tide.olympe.in/">tIDE</a></td> |
| <td/> |
| <td>Built in</td> |
| <td/> |
| </tr> |
| <tr> |
| <td><a href="https://netbeans.org/">NetBeans</a></td> |
| <td>Petr Hejl</td> |
| <td> |
| <a href="https://www.sickboy.cz/checkstyle/">Checkstyle Beans</a> |
| </td> |
| <td> |
| Problems with source code are displayed as annotations of |
| the source |
| </td> |
| </tr> |
| <tr> |
| <td><a href="https://netbeans.org/">NetBeans</a></td> |
| <td/> |
| <td> |
| <a href="http://sqe-team.github.io">Software Quality Environment (SQE)</a> |
| </td> |
| <td/> |
| </tr> |
| <tr> |
| <td><a href="https://www.sonarqube.org/">SonarQube</a></td> |
| <td>Freddy Mallet (initial author)</td> |
| <td><a href="https://github.com/checkstyle/sonar-checkstyle">Checkstyle SonarQube repository</a></td> |
| <td><a href="https://sonarcloud.io/projects">Demo site of SonarQube</a></td> |
| </tr> |
| <tr> |
| <td><a href="http://www.jedit.org/">jEdit</a></td> |
| <td>Todd Papaioannou</td> |
| <td><a |
| href="http://plugins.jedit.org/plugins/?CheckStylePlugin">JEdit CheckStylePlugin</a></td> |
| <td/> |
| </tr> |
| <tr> |
| <td><a href="https://www.scm-manager.org/">SCM-Manager</a></td> |
| <td/> |
| <td><a href="http://plugins.scm-manager.org/scm-plugin-backend/page/index.html">SCM-Manager Plugin Page</a></td> |
| <td/> |
| </tr> |
| <tr> |
| <td><a href="http://www.jetbrains.com/idea/">IntelliJ IDEA</a></td> |
| <td>Jakub Slawinski</td> |
| <td> |
| <a href="https://plugins.jetbrains.com/plugin/4594-qaplug">QAPlug</a> |
| </td> |
| <td>Provides quality assurance features.</td> |
| </tr> |
| <tr> |
| <td><a href="https://www.jarchitect.com">JArchitect</a></td> |
| <td/> |
| <td><a href="https://www.jarchitect.com">JArchitect Home Page</a></td> |
| <td>Imports XML result files from CheckStyle.</td> |
| </tr> |
| <tr> |
| <td><a href="http://www.scala-sbt.org/">SBT</a></td> |
| <td>Andrew Johnson</td> |
| <td><a href="https://github.com/etsy/sbt-checkstyle-plugin">sbt-checkstyle-plugin Project Page</a></td> |
| <td>SBT plugin for running Checkstyle on Java source files in an SBT project</td> |
| </tr> |
| <tr> |
| <td><a href="https://github.com/nidi3/code-assert">code-assert</a></td> |
| <td>Stefan Niederhauser</td> |
| <td><a href="https://github.com/nidi3/code-assert#checkstyle-checks">code-assert</a></td> |
| <td>Assert that the java code of a project satisfies certain checks. Launch checkstyle validation from UTs</td> |
| </tr> |
| <tr> |
| <td><a href="http://jdee.sourceforge.net/">Emacs JDE</a></td> |
| <td>Markus Mohnen</td> |
| <td>Part of the standard JDEE distribution - <a href="https://github.com/jdee-emacs/jdee"/></td> |
| <td><a href="https://github.com/jdee-emacs/jdee/blob/master/jdee-checkstyle.el">configuration could be seen at jdee-checkstyle.el</a></td> |
| </tr> |
| </table> |
| </subsection> |
| |
| <subsection name="Inactive / Old Tools" > |
| <table> |
| <tr> |
| <th>IDE / Build tool</th> |
| <th>Main/Initial Author</th> |
| <th>Available from</th> |
| <th>Remarks</th> |
| </tr> |
| <tr> |
| <td><a href="http://www.jetbrains.com/idea/">IntelliJ IDEA</a></td> |
| <td>Mark Lussier</td> |
| <td> |
| <a href="http://jetstyle.sourceforge.net/">JetStyle Project Page</a> |
| </td> |
| <td/> |
| </tr> |
| <tr> |
| <td/> |
| <td><a href="http://jcoderz.github.io/">jCoderZ</a></td> |
| <td> |
| <a href="https://github.com/jCoderZ/fawkez-code-report">fawkez-code-report</a> |
| </td> |
| <td>Combines multiple tools (CheckStyle, findbugs, PMD, Cobertura, etc.)</td> |
| </tr> |
| <tr> |
| <td><a href="https://www.bluej.org/">BlueJ</a></td> |
| <td>Rick Giles</td> |
| <td><a href="http://bluejcheckstyle.sourceforge.net/">bluejcheckstyle home page</a></td> |
| <td/> |
| </tr> |
| <tr> |
| <td><a href="https://eclipse.org">Eclipse/RAD/RDz</a></td> |
| <td>Marco van Meegen</td> |
| <td> |
| <a href="http://www.mvmsoft.de/content/plugins/checkclipse/checkclipse.htm">Checklipse Home Page</a> |
| </td> |
| <td/> |
| </tr> |
| <tr> |
| <td><a href="http://qalab.sourceforge.net/">QALab</a></td> |
| <td>Benoit Xhenseval</td> |
| <td><a href="http://qalab.sourceforge.net/">QALab Home Page</a></td> |
| <td>Supports tracking Checkstyle statistics over time.</td> |
| </tr> |
| <tr> |
| <td><a href="https://netbeans.org/">NetBeans</a></td> |
| <td>Paul Goulbourn</td> |
| <td><a href="http://nbcheckstyle.sourceforge.net">nbCheckStyle</a></td> |
| <td/> |
| </tr> |
| <tr> |
| <td><a href="https://vim.sourceforge.io/">Vim editor</a></td> |
| <td>Xandy Johnson</td> |
| <td><a href="https://vim.sourceforge.io/scripts/script.php?script_id=448">Plugin Homepage</a></td> |
| <td>Vim file-type plug-in</td> |
| </tr> |
| </table> |
| </subsection> |
| |
| <p> |
| If you have written a plugin for other IDEs, please let us know, so we |
| can provide a link here. |
| </p> |
| |
| </section> |
| |
| </body> |
| </document> |