checkstyle/docs/anttask.html

239 lines
11 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>checkstyle ANT Task</title>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
<body>
<h1><a name="checkstyle">checkstyle ANT Task</a></h1>
<h3>Description</h3>
<p>This task runs checkstyle over specified Java files. The task has been tested using ANT 1.4.1. The latest version of checkstyle can be found at <a href="http://checkstyle.sourceforge.net/">http://checkstyle.sourceforge.net/</a>.
This task is included in the checkstyle distribution.</p>
<h3>Installation</h3>
<p>The easiest way is to include <span class="default">checkstyle-all-1.4.jar</span> in the classpath. This contains all the classes required to run checkstyle. Alternatively, you must include the following in the classpath:</p>
<ol>
<li><span class="default">checkstyle-1.4.jar</span></li>
<li>ANTLR 2.7.1 classes. <span class="default">antlr.jar</span> is included in the distribution.</li>
<li>Jakarta Regexp 1.2 classes. <span class="default">jakarta-regexp-1.2.jar</span> is included in the distribution.</li>
</ol>
<p>To use the task in a build file, you will need the following <code>taskdef</code> declaration:</p>
<pre>
&lt;taskdef name=&quot;checkstyle&quot;
classname=&quot;com.puppycrawl.tools.checkstyle.CheckStyleTask&quot;/&gt;
</pre>
<h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0" summary="parameters">
<tr class="header">
<td valign="top"><b>Attribute</b></td>
<td valign="top"><b>Description</b></td>
<td valign="top"><b>Required</b></td>
</tr>
<tr>
<td valign="top">file</td>
<td valign="top">File to run checkstyle on.</td>
<td align="center" valign="top">One of either <i>file</i> or at least one nested <i>fileset</i> element</td>
</tr>
<tr>
<td valign="top">allowTabs</td>
<td valign="top">Indicates whether to allow tabs. Defaults to <span class="default">&quot;false&quot;</span>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">allowProtected</td>
<td valign="top">Indicates whether to allow protected data. Defaults to <span class="default">&quot;false&quot;</span>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">allowNoAuthor</td>
<td valign="top">Indicates whether to allow no <span class="default">@author</span> tag to be defined for class and interface Javadoc comments. Defaults to <span class="default">&quot;false&quot;</span>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">maxLineLen</td>
<td valign="top">Specifies the maximum line length. Default value is defined <a href="engine.html#length">here</a>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">ignoreImportLen</td>
<td valign="top">Specifies whether to ignore the maximum line length for <span class="code">import</span> statements. Defaults to <span class="default">&quot;false&quot;</span>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">maxMethodLen</td>
<td valign="top">Specifies the maximum method length. Default value is defined <a href="engine.html#methodLength">here</a>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">maxConstructorLen</td>
<td valign="top">Specifies the maximum constructor length. Default value is defined <a href="engine.html#constructorLength">here</a>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">maxFileLen</td>
<td valign="top">Specifies the maximum file length. Default value is defined <a href="engine.html#fileLength">here</a>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">memberPattern</td>
<td valign="top">Specifies the regular expression to match against member variables. Default value is defined <a href="engine.html#varformat">here</a>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">publicMemberPattern</td>
<td valign="top">Specifies the regular expression to match against public member variables. Default value is defined <a href="engine.html#fieldformat">here</a>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">paramPattern</td>
<td valign="top">Specifies the regular expression to match against parameters. Default value is defined <a href="engine.html#paramformat">here</a>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">constPattern</td>
<td valign="top">Specifies the regular expression to match against static/final variables. Default value is defined <a href="engine.html#varformat">here</a>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">staticPattern</td>
<td valign="top">Specifies the regular expression to match against static variables. Default value is defined <a href="engine.html#varformat">here</a>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">typePattern</td>
<td valign="top">Specifies the regular expression to match against type names. Default value is defined <a href="engine.html#typeformat">here</a>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">headerFile</td>
<td valign="top">Specifies the file containing the header lines. Default is to not check.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">headerIgnoreLine</td>
<td valign="top">Specifies the line in the header to ignore when comparing. Default it to not ignore any line.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">javadocScope</td>
<td valign="top">Specifies the visibility scope where javadoc comments are checked. Valid values are <span class="default">&quot;nothing&quot;</span>, <span class="default">&quot;public&quot;</span>, <span class="default">&quot;protected&quot;</span>, <span class="default">&quot;package&quot;</span>, <span class="default">&quot;private&quot;</span> and <span class="default">&quot;anoninner&quot;</span>. Defaults to <span class="default">&quot;private&quot;</span>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">ignoreImports</td>
<td valign="top">Specifies whether to ignore checking import statements. Defaults to <span class="default">&quot;false&quot;</span>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">ignoreWhitespace</td>
<td valign="top">Specifies whether to ignore checking whitespace. Defaults to <span class="default">&quot;false&quot;</span>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">ignoreCastWhitespace</td>
<td valign="top">Specifies whether to ignore checking for whitespace after a cast. Defaults to <span class="default">&quot;false&quot;</span>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">ignoreBraces</td>
<td valign="top">Specifies whether to ignore checking braces. Defaults to <span class="default">&quot;false&quot;</span>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">failOnViolation</td>
<td valign="top">Specifies whether the build will continue even if there are violations. Defaults to <span class="default">&quot;true&quot;</span>.</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">cacheFile</td>
<td valign="top">Specifies the name of a file that can be used to cache details of files that pass checkstyle. This can signicantly increase the speed of checkstyle on successive runs.</td>
<td align="center" valign="top">No</td>
</tr>
</table>
<p>Older versions of the checkstyle task supported the boolean parameters <span class="default">relaxJavadoc</span> and <span class="default">ignoreJavadoc</span>. These parameters have been removed because they were conflicting and the semantics of <span class="default">relaxJavadoc</span> was not clearly specified. The two parameters have been replaced by the <span class="default">javadocScope</span> parameter. Instead of <span class="default">ignoreJavadoc="true"</span> you can now use <span class="default">javadocScope="nothing"</span>. The behaviour of <span class="default">relaxJavadoc="true"</span> is roughly the same as <span class="default">javadocScope="protected"</span>.</p>
<h3>Nested Elements</h3>
<p>This task supports the nested elements <a href="http://jakarta.apache.org/ant/manual/CoreTypes/fileset.html">&lt;fileset&gt;</a> and <span class="default">&lt;formatter&gt;</span>. The parameters for the <span class="default">&lt;formatter&gt;</span> element are:</p>
<table border="1" cellpadding="2" cellspacing="0" summary="nested elements">
<tr class="header">
<td valign="top"><b>Attribute</b></td>
<td valign="top"><b>Description</b></td>
<td valign="top"><b>Required</b></td>
</tr>
<tr>
<td valign="top">type</td>
<td valign="top">
<p>The type of output to generate. The valid values are:</p>
<ul>
<li><span class="default">plain</span> - specifies the <a href="api/com/puppycrawl/tools/checkstyle/DefaultLogger.html">DefaultLogger</a></li>
<li><span class="default">xml</span> - specifies the <a href="api/com/puppycrawl/tools/checkstyle/XMLLogger.html">XMLLogger</a></li>
</ul>
<p>Defaults to <span class="default">"plain"</span>.</p>
</td>
<td align="center" valign="top">No</td>
</tr>
<tr>
<td valign="top">toFile</td>
<td valign="top">The file to write output to. Defaults to standard output. Note, there is no way to explicitly specify standard output.
</td>
<td align="center" valign="top">No</td>
</tr>
</table>
<h3>Examples</h3>
<p><b>Run checkstyle on a single file</b></p>
<pre>
&lt;checkstyle file=&quot;Check.java&quot;/&gt;
</pre>
<p><b>Run checkstyle on a set of Java files in directory</b></p>
<pre>
&lt;checkstyle&gt;
&lt;fileset dir=&quot;src/checkstyle&quot; includes=&quot;**/*.java&quot;/&gt;
&lt;/checkstyle&gt;
</pre>
<p><b>Run checkstyle on a set of Java files and allow tabs</b></p>
<pre>
&lt;checkstyle allowTabs=&quot;yes&quot;&gt;
&lt;fileset dir=&quot;src/checkstyle&quot; includes=&quot;**/*.java&quot;/&gt;
&lt;/checkstyle&gt;
</pre>
<p><b>Run checkstyle on a set of files and output messages to standard output in plain format, and a file in XML format</b></p>
<pre>
&lt;checkstyle&gt;
&lt;fileset dir=&quot;src/checkstyle&quot; includes=&quot;**/*.java&quot;/&gt;
&lt;formatter type=&quot;plain&quot;/&gt;
&lt;formatter type=&quot;xml&quot; toFile=&quot;build/checkstyle_errors.xml&quot;/&gt;
&lt;/checkstyle&gt;
</pre>
<p><b>Run checkstyle on a set of Java files and disable pattern matching</b></p>
<pre>
&lt;checkstyle allowTabs=&quot;yes&quot;
paramPattern=&quot;.&quot;
constPattern=&quot;.&quot;
staticPattern=&quot;.&quot;
memberPattern=&quot;.&quot;&gt;
&lt;fileset dir=&quot;src/checkstyle&quot; includes=&quot;**/*.java&quot;/&gt;
&lt;/checkstyle&gt;
</pre>
<hr>
<p align="center">Copyright &copy; 2001 Oliver Burn. All rights Reserved.</p>
</body>
</html>