Skip to content

Commit 30d6f08

Browse files
committed
testing checkstyle with maven
1 parent a55fdf4 commit 30d6f08

File tree

12 files changed

+912
-0
lines changed

12 files changed

+912
-0
lines changed

springboot-checkstyle-demo/.gitignore

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/target/
2+
!.mvn/wrapper/maven-wrapper.jar
3+
4+
### STS ###
5+
.apt_generated
6+
.classpath
7+
.factorypath
8+
.project
9+
.settings
10+
.springBeans
11+
.sts4-cache
12+
13+
### IntelliJ IDEA ###
14+
.idea
15+
*.iws
16+
*.iml
17+
*.ipr
18+
19+
### NetBeans ###
20+
/nbproject/private/
21+
/build/
22+
/nbbuild/
23+
/dist/
24+
/nbdist/
25+
/.nb-gradle/
Binary file not shown.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip

springboot-checkstyle-demo/README.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
## Check style
2+
3+
> config files
4+
5+
- config/checkstyle/checkstyle.xml
6+
- config/checkstyle/suppressions.xml
7+
8+
> plugins
9+
10+
```aidl
11+
<plugin>
12+
<groupId>org.apache.maven.plugins</groupId>
13+
<artifactId>maven-checkstyle-plugin</artifactId>
14+
<version>3.0.0</version>
15+
<dependencies>
16+
<dependency>
17+
<groupId>com.puppycrawl.tools</groupId>
18+
<artifactId>checkstyle</artifactId>
19+
<version>8.11</version>
20+
</dependency>
21+
</dependencies>
22+
23+
<executions>
24+
<execution>
25+
<id>checkstyle</id>
26+
<phase>validate</phase>
27+
<goals>
28+
<goal>check</goal>
29+
</goals>
30+
</execution>
31+
</executions>
32+
<configuration>
33+
<configLocation>config/checkstyle/checkstyle.xml</configLocation>
34+
<encoding>UTF-8</encoding>
35+
<consoleOutput>true</consoleOutput>
36+
<failsOnError>true</failsOnError>
37+
</configuration>
38+
</plugin>
39+
```
40+
41+
> Checks
42+
43+
```aidl
44+
> ./mvnw.cmd checkstyle:checkstyle
45+
or
46+
> ./mvnw checkstyle:checkstyle
47+
```
48+
Lines changed: 252 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,252 @@
1+
<?xml version="1.0"?>
2+
<!DOCTYPE module PUBLIC
3+
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
4+
"https://checkstyle.org/dtds/configuration_1_3.dtd">
5+
6+
<!--
7+
Checkstyle configuration that checks the Google coding conventions from Google Java Style
8+
that can be found at https://google.github.io/styleguide/javaguide.html.
9+
Checkstyle is very configurable. Be sure to read the documentation at
10+
http://checkstyle.sf.net (or in your downloaded distribution).
11+
To completely disable a check, just comment it out or delete it from the file.
12+
Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov.
13+
-->
14+
15+
<module name = "Checker">
16+
<property name="charset" value="UTF-8"/>
17+
18+
<property name="severity" value="warning"/>
19+
20+
<property name="fileExtensions" value="java, properties, xml"/>
21+
<!-- Checks for whitespace -->
22+
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
23+
<module name="FileTabCharacter">
24+
<property name="eachLine" value="true"/>
25+
</module>
26+
27+
<module name="TreeWalker">
28+
<module name="OuterTypeFilename"/>
29+
<module name="IllegalTokenText">
30+
<property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
31+
<property name="format"
32+
value="\\u00(09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/>
33+
<property name="message"
34+
value="Consider using special escape sequence instead of octal value or Unicode escaped value."/>
35+
</module>
36+
<module name="AvoidEscapedUnicodeCharacters">
37+
<property name="allowEscapesForControlCharacters" value="true"/>
38+
<property name="allowByTailComment" value="true"/>
39+
<property name="allowNonPrintableEscapes" value="true"/>
40+
</module>
41+
<module name="LineLength">
42+
<property name="max" value="100"/>
43+
<property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
44+
</module>
45+
<module name="AvoidStarImport"/>
46+
<module name="OneTopLevelClass"/>
47+
<module name="NoLineWrap"/>
48+
<module name="EmptyBlock">
49+
<property name="option" value="TEXT"/>
50+
<property name="tokens"
51+
value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
52+
</module>
53+
<module name="NeedBraces"/>
54+
<module name="LeftCurly"/>
55+
<module name="RightCurly">
56+
<property name="id" value="RightCurlySame"/>
57+
<property name="tokens"
58+
value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE,
59+
LITERAL_DO"/>
60+
</module>
61+
<module name="RightCurly">
62+
<property name="id" value="RightCurlyAlone"/>
63+
<property name="option" value="alone"/>
64+
<property name="tokens"
65+
value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT,
66+
INSTANCE_INIT"/>
67+
</module>
68+
<module name="WhitespaceAround">
69+
<property name="allowEmptyConstructors" value="true"/>
70+
<property name="allowEmptyMethods" value="true"/>
71+
<property name="allowEmptyTypes" value="true"/>
72+
<property name="allowEmptyLoops" value="true"/>
73+
<message key="ws.notFollowed"
74+
value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/>
75+
<message key="ws.notPreceded"
76+
value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
77+
</module>
78+
<module name="OneStatementPerLine"/>
79+
<module name="MultipleVariableDeclarations"/>
80+
<module name="ArrayTypeStyle"/>
81+
<module name="MissingSwitchDefault"/>
82+
<module name="FallThrough"/>
83+
<module name="UpperEll"/>
84+
<module name="ModifierOrder"/>
85+
<module name="EmptyLineSeparator">
86+
<property name="allowNoEmptyLineBetweenFields" value="true"/>
87+
</module>
88+
<module name="SeparatorWrap">
89+
<property name="id" value="SeparatorWrapDot"/>
90+
<property name="tokens" value="DOT"/>
91+
<property name="option" value="nl"/>
92+
</module>
93+
<module name="SeparatorWrap">
94+
<property name="id" value="SeparatorWrapComma"/>
95+
<property name="tokens" value="COMMA"/>
96+
<property name="option" value="EOL"/>
97+
</module>
98+
<module name="SeparatorWrap">
99+
<!-- ELLIPSIS is EOL until https://github.com/google/styleguide/issues/258 -->
100+
<property name="id" value="SeparatorWrapEllipsis"/>
101+
<property name="tokens" value="ELLIPSIS"/>
102+
<property name="option" value="EOL"/>
103+
</module>
104+
<module name="SeparatorWrap">
105+
<!-- ARRAY_DECLARATOR is EOL until https://github.com/google/styleguide/issues/259 -->
106+
<property name="id" value="SeparatorWrapArrayDeclarator"/>
107+
<property name="tokens" value="ARRAY_DECLARATOR"/>
108+
<property name="option" value="EOL"/>
109+
</module>
110+
<module name="SeparatorWrap">
111+
<property name="id" value="SeparatorWrapMethodRef"/>
112+
<property name="tokens" value="METHOD_REF"/>
113+
<property name="option" value="nl"/>
114+
</module>
115+
<module name="PackageName">
116+
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
117+
<message key="name.invalidPattern"
118+
value="Package name ''{0}'' must match pattern ''{1}''."/>
119+
</module>
120+
<module name="TypeName">
121+
<message key="name.invalidPattern"
122+
value="Type name ''{0}'' must match pattern ''{1}''."/>
123+
</module>
124+
<module name="MemberName">
125+
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
126+
<message key="name.invalidPattern"
127+
value="Member name ''{0}'' must match pattern ''{1}''."/>
128+
</module>
129+
<module name="ParameterName">
130+
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
131+
<message key="name.invalidPattern"
132+
value="Parameter name ''{0}'' must match pattern ''{1}''."/>
133+
</module>
134+
<module name="LambdaParameterName">
135+
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
136+
<message key="name.invalidPattern"
137+
value="Lambda parameter name ''{0}'' must match pattern ''{1}''."/>
138+
</module>
139+
<module name="CatchParameterName">
140+
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
141+
<message key="name.invalidPattern"
142+
value="Catch parameter name ''{0}'' must match pattern ''{1}''."/>
143+
</module>
144+
<module name="LocalVariableName">
145+
<property name="tokens" value="VARIABLE_DEF"/>
146+
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
147+
<message key="name.invalidPattern"
148+
value="Local variable name ''{0}'' must match pattern ''{1}''."/>
149+
</module>
150+
<module name="ClassTypeParameterName">
151+
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
152+
<message key="name.invalidPattern"
153+
value="Class type name ''{0}'' must match pattern ''{1}''."/>
154+
</module>
155+
<module name="MethodTypeParameterName">
156+
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
157+
<message key="name.invalidPattern"
158+
value="Method type name ''{0}'' must match pattern ''{1}''."/>
159+
</module>
160+
<module name="InterfaceTypeParameterName">
161+
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
162+
<message key="name.invalidPattern"
163+
value="Interface type name ''{0}'' must match pattern ''{1}''."/>
164+
</module>
165+
<module name="NoFinalizer"/>
166+
<module name="GenericWhitespace">
167+
<message key="ws.followed"
168+
value="GenericWhitespace ''{0}'' is followed by whitespace."/>
169+
<message key="ws.preceded"
170+
value="GenericWhitespace ''{0}'' is preceded with whitespace."/>
171+
<message key="ws.illegalFollow"
172+
value="GenericWhitespace ''{0}'' should followed by whitespace."/>
173+
<message key="ws.notPreceded"
174+
value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>
175+
</module>
176+
<module name="Indentation">
177+
<property name="basicOffset" value="2"/>
178+
<property name="braceAdjustment" value="0"/>
179+
<property name="caseIndent" value="2"/>
180+
<property name="throwsIndent" value="4"/>
181+
<property name="lineWrappingIndentation" value="4"/>
182+
<property name="arrayInitIndent" value="2"/>
183+
</module>
184+
<module name="AbbreviationAsWordInName">
185+
<property name="ignoreFinal" value="false"/>
186+
<property name="allowedAbbreviationLength" value="1"/>
187+
</module>
188+
<module name="OverloadMethodsDeclarationOrder"/>
189+
<module name="VariableDeclarationUsageDistance"/>
190+
<module name="CustomImportOrder">
191+
<property name="sortImportsInGroupAlphabetically" value="true"/>
192+
<property name="separateLineBetweenGroups" value="true"/>
193+
<property name="customImportOrderRules" value="STATIC###THIRD_PARTY_PACKAGE"/>
194+
</module>
195+
<module name="MethodParamPad"/>
196+
<module name="NoWhitespaceBefore">
197+
<property name="tokens"
198+
value="COMMA, SEMI, POST_INC, POST_DEC, DOT, ELLIPSIS, METHOD_REF"/>
199+
<property name="allowLineBreaks" value="true"/>
200+
</module>
201+
<module name="ParenPad"/>
202+
<module name="OperatorWrap">
203+
<property name="option" value="NL"/>
204+
<property name="tokens"
205+
value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR,
206+
LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR, METHOD_REF "/>
207+
</module>
208+
<module name="AnnotationLocation">
209+
<property name="id" value="AnnotationLocationMostCases"/>
210+
<property name="tokens"
211+
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/>
212+
</module>
213+
<module name="AnnotationLocation">
214+
<property name="id" value="AnnotationLocationVariables"/>
215+
<property name="tokens" value="VARIABLE_DEF"/>
216+
<property name="allowSamelineMultipleAnnotations" value="true"/>
217+
</module>
218+
<module name="NonEmptyAtclauseDescription"/>
219+
<module name="JavadocTagContinuationIndentation"/>
220+
<module name="SummaryJavadoc">
221+
<property name="forbiddenSummaryFragments"
222+
value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>
223+
</module>
224+
<module name="JavadocParagraph"/>
225+
<module name="AtclauseOrder">
226+
<property name="tagOrder" value="@param, @return, @throws, @deprecated"/>
227+
<property name="target"
228+
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
229+
</module>
230+
<module name="JavadocMethod">
231+
<property name="scope" value="public"/>
232+
<property name="allowMissingParamTags" value="true"/>
233+
<property name="allowMissingThrowsTags" value="true"/>
234+
<property name="allowMissingReturnTag" value="true"/>
235+
<property name="minLineCount" value="2"/>
236+
<property name="allowedAnnotations" value="Override, Test"/>
237+
<property name="allowThrowsTagsForSubclasses" value="true"/>
238+
</module>
239+
<module name="MethodName">
240+
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/>
241+
<message key="name.invalidPattern"
242+
value="Method name ''{0}'' must match pattern ''{1}''."/>
243+
</module>
244+
<module name="SingleLineJavadoc">
245+
<property name="ignoreInlineTags" value="false"/>
246+
</module>
247+
<module name="EmptyCatchBlock">
248+
<property name="exceptionVariableName" value="expected"/>
249+
</module>
250+
<module name="CommentsIndentation"/>
251+
</module>
252+
</module>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0"?>
2+
3+
<!DOCTYPE suppressions PUBLIC
4+
"-//Puppy Crawl//DTD Suppressions 1.1//EN"
5+
"http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
6+
7+
<suppressions>
8+
<suppress files="[\\/]generated[\\/]" checks="."/>
9+
</suppressions>

0 commit comments

Comments
 (0)