Wiki-Quellcode von Checkstyle

Version 1.5 von Celina Bock am 2025/07/08 09:31

Zeige letzte Bearbeiter
1 Für die Programmierfächer aus Semester 1 und 2 wurde Checkstyle eingeführt. Bei der Aufgabenerstellung muss der Haken bei "statische Codeanalyse" gesetzt werden. Späteres Hinzufügen von Checkstyle ist umständlich (Export in einen anderen Kurs,
2
3
4
5 <?xml version="1.0"?>
6 <!DOCTYPE module PUBLIC "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN" "https://checkstyle.org/dtds/configuration_1_3.dtd">//
7
8
9 <module name="Checker">
10 <!--    artemis conifg -->
11 <property name="severity" value="warning" />
12
13 <property name="fileExtensions" value="java" />
14
15 <!-- See https://checkstyle.org/filefilters/beforeexecutionexclusionfilefilter.html -->
16
17 <module name="BeforeExecutionExclusionFileFilter">
18 <!-- Filtert alle Dateien, die nicht SortedArray heißen -->
19 <property name="fileNamePattern" value="^(?!.*([
20 /])?(SortedArray)\.java$).*" />
21 </module>
22
23 <!--    gdp checks-->
24 <module name="TreeWalker">
25 <property name="tabWidth" value="4" />
26 <module name="JavadocMethod">
27 <property name="accessModifiers" value="public" />
28 </module>
29 <module name="JavadocStyle">
30 <property name="scope" value="public" />
31 <property name="checkFirstSentence" value="false" />
32 </module>
33 <module name="LocalFinalVariableName" />
34 <module name="LocalVariableName" />
35 <module name="MemberName" />
36 <module name="MethodName" />
37 <module name="PackageName">
38 </module>
39 <module name="ParameterName" />
40 <module name="StaticVariableName" />
41 <module name="TypeName">
42 </module>
43 <module name="AvoidStarImport">
44 </module>
45 <module name="IllegalImport" />
46 <module name="RedundantImport" />
47 <module name="UnusedImports" />
48 <module name="MethodLength">
49 <property name="max" value="75" />
50 </module>
51 <module name="ParameterNumber">
52 </module>
53 <module name="EmptyForIteratorPad">
54 </module>
55 <module name="MethodParamPad">
56 </module>
57 <module name="NoWhitespaceAfter">
58 <property name="tokens" value="LNOT,DOT,BNOT,DEC,UNARY_MINUS,UNARY_PLUS,INC,ARRAY_INIT" />
59 <property name="severity" value="info" />
60 </module>
61 <module name="NoWhitespaceBefore">
62 <property name="allowLineBreaks" value="true" />
63 <property name="tokens" value="SEMI,DOT,POST_DEC,POST_INC" />
64 <property name="severity" value="info" />
65 </module>
66 <module name="OperatorWrap">
67 </module>
68 <module name="ParenPad">
69 </module>
70 <module name="TypecastParenPad">
71 </module>
72 <module name="WhitespaceAfter">
73 <property name="tokens" value="COMMA" />
74 <property name="severity" value="info" />
75 </module>
76 <module name="WhitespaceAround">
77 <property name="severity" value="info" />
78 </module>
79 <module name="AvoidNestedBlocks">
80 </module>
81 <module name="EmptyBlock">
82 </module>
83 <module name="LeftCurly">
84 </module>
85 <module name="NeedBraces">
86 <property name="severity" value="info" />
87 </module>
88 <module name="EmptyStatement">
89 </module>
90 <module name="EqualsHashCode">
91 </module>
92 <module name="HiddenField">
93 <property name="ignoreConstructorParameter" value="true" />
94 <property name="ignoreSetter" value="true" />
95 </module>
96 <module name="InnerAssignment">
97 </module>
98 <module name="MissingSwitchDefault" />
99 <module name="SimplifyBooleanExpression">
100 <message key="simplify.expression" value="Der Ausdruck sollte vereinfacht werden." />
101 </module>
102 <module name="SimplifyBooleanReturn">
103 </module>
104 <module name="ArrayTypeStyle">
105 </module>
106 <module name="TodoComment">
107 </module>
108 <module name="UpperEll">
109 </module>
110 <module name="ReturnCount">
111 <property name="max" value="8" />
112 </module>
113 <!-- <module name="MagicNumber">
114 <metadata name="net.sf.eclipsecs.core.comment"
115 value="-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9"/>
116 <property name="ignoreNumbers" value="-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9"/>
117 <property name="severity" value="info"/>
118 </module> -->
119 <module name="ReturnCount">
120 <property name="max" value="4" />
121 <message key="return.count"
122 value="Möglichst nicht mehr als {1,number,integer} return-Anweisungen." />
123 </module>
124 <module name="JavadocType">
125 <property name="authorFormat" value=".{2,}" />
126 <message key="type.tagFormat" value="Autor sollte mindestens zwei Buchstaben haben" />
127 </module>
128 <module name="JavadocVariable">
129 <property name="scope" value="public" />
130 </module>
131 <module name="ConstantName">
132 <message key="name.invalidPattern"
133 value="Nur Großbuchstaben, Zahlen und Unterstriche für Konstanten verwenden." />
134 </module>
135 <module name="ModifierOrder">
136 </module>
137 <module name="CyclomaticComplexity">
138 <property name="max" value="20" />
139 </module>
140 <module name="NPathComplexity">
141 <property name="max" value="80" />
142 </module>
143 <module name="RightCurly">
144 </module>
145 </module>
146 <module name="LineLength">
147 <property name="max" value="140" />
148 <property name="fileExtensions" value="java" />
149 <property name="ignorePattern"
150 value="^package.*|^import.*|a href|href|http://|https://|ftp://" />
151 </module>
152
153
154 <module name="JavadocPackage" />
155 <module name="FileLength">
156 <property name="max" value="1000" />
157 </module>
158 <module name="FileTabCharacter">
159 <property name="severity" value="info" />
160 </module>
161 <module name="RegexpHeader">
162 <property name="header" value="^package" />
163 <message key="header.mismatch" value="Angabe eines Packages fehlt." />
164 </module>
165
166 </module>
167