Änderungen von Dokument Checkstyle u. Statische Codeanalyse

Zuletzt geändert von Celina Bock am 2025/09/17 10:43

Von Version 9.13
bearbeitet von Celina Bock
am 2025/07/08 10:05
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 1.5
bearbeitet von Celina Bock
am 2025/07/08 09:31
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Inhalt
... ... @@ -1,28 +1,167 @@
1 -== Checkstyle einrichten ==
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 2  
3 -Für die Programmierfächer aus Semester 1 und 2 wurde Checkstyle eingeführt.
4 4  
5 -* 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, Löschen im alten Kurs, erneutes Importieren, dann Haken setzen).//
6 6  
7 -[[image:StatCode.png]]
5 +<?xml version="1.0"?>
6 +<!DOCTYPE module PUBLIC "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN" "https://checkstyle.org/dtds/configuration_1_3.dtd">//
8 8  
9 -(% style="color:#c0392b" %)**Checkstyle Konfiguration findet sich unter Anhänge.**
10 10  
9 +<module name="Checker">
10 + <!--    artemis conifg -->
11 + <property name="severity" value="warning" />
11 11  
13 + <property name="fileExtensions" value="java" />
12 12  
13 -== Entfernen von Spotbugs und PMD oder Checkstyle ==
15 + <!-- See https://checkstyle.org/filefilters/beforeexecutionexclusionfilefilter.html -->
14 14  
15 -Beim Erstellen von Aufgaben mit statischer Code Analyse erstellt Artemis ein Projekt mit [[Checkstyle>>https://maven.apache.org/plugins/maven-checkstyle-plugin/]], [[Apache PMD>>https://maven.apache.org/plugins/maven-pmd-plugin/]] und [[Spotbugs>>https://spotbugs.github.io/spotbugs-maven-plugin/]]. Wenn eines der Tools nicht benötigt wird, muss die Dependency im Projekt gelöscht werden **und** das Build Script angepasst werden.
17 + <module name="BeforeExecutionExclusionFileFilter">
18 + <!-- Filtert alle Dateien, die nicht SortedArray heißen -->
19 + <property name="fileNamePattern" value="^(?!.*([
20 +/])?(SortedArray)\.java$).*" />
21 + </module>
16 16  
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>
17 17  
18 -Unter Build-Plane bearbeiten finden sich die mvn commands, um die genannten Tools auszuführen.
19 19  
20 -[[image:1751960876121-491.png]]
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>
21 21  
22 -
23 -Die Methode staticCodeAnalysis alle Commands. Beim Entfernen von z.B. PMD muss nicht nur der Command //pmd:pmd pmd:cpd// entfernt werden, sondern auch die copy Commands für die Reports.
24 -
25 -[[image:1751961576022-284.png]]
26 -
27 -
166 +</module>
28 28  
1751960876121-491.png
Author
... ... @@ -1,1 +1,0 @@
1 -xwiki:XWiki.id300818
Größe
... ... @@ -1,1 +1,0 @@
1 -21.6 KB
Inhalt
1751961576022-284.png
Author
... ... @@ -1,1 +1,0 @@
1 -xwiki:XWiki.id300818
Größe
... ... @@ -1,1 +1,0 @@
1 -70.6 KB
Inhalt
Checktyle.xml
Author
... ... @@ -1,1 +1,0 @@
1 -xwiki:XWiki.id300818
Größe
... ... @@ -1,1 +1,0 @@
1 -5.8 KB
Inhalt
... ... @@ -1,159 +1,0 @@
1 -<?xml version="1.0"?>
2 -<!DOCTYPE module PUBLIC "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN" "https://checkstyle.org/dtds/configuration_1_3.dtd">
3 -
4 -
5 -<module name="Checker">
6 - <property name="severity" value="warning" />
7 -
8 - <property name="fileExtensions" value="java" />
9 -
10 - <!-- See https://checkstyle.org/filefilters/beforeexecutionexclusionfilefilter.html -->
11 -
12 - <module name="BeforeExecutionExclusionFileFilter">
13 - <!-- Filtert alle Dateien, die nicht SortedArray heißen -->
14 - <property name="fileNamePattern" value="^(?!.*([\\/])?(SortedArray)\.java$).*" />
15 - </module>
16 -
17 - <module name="TreeWalker">
18 - <property name="tabWidth" value="4" />
19 - <module name="JavadocMethod">
20 - <property name="accessModifiers" value="public" />
21 - </module>
22 - <module name="JavadocStyle">
23 - <property name="scope" value="public" />
24 - <property name="checkFirstSentence" value="false" />
25 - </module>
26 - <module name="LocalFinalVariableName" />
27 - <module name="LocalVariableName" />
28 - <module name="MemberName" />
29 - <module name="MethodName" />
30 - <module name="PackageName">
31 - </module>
32 - <module name="ParameterName" />
33 - <module name="StaticVariableName" />
34 - <module name="TypeName">
35 - </module>
36 - <module name="AvoidStarImport">
37 - </module>
38 - <module name="IllegalImport" />
39 - <module name="RedundantImport" />
40 - <module name="UnusedImports" />
41 - <module name="MethodLength">
42 - <property name="max" value="75" />
43 - </module>
44 - <module name="ParameterNumber">
45 - </module>
46 - <module name="EmptyForIteratorPad">
47 - </module>
48 - <module name="MethodParamPad">
49 - </module>
50 - <module name="NoWhitespaceAfter">
51 - <property name="tokens" value="LNOT,DOT,BNOT,DEC,UNARY_MINUS,UNARY_PLUS,INC,ARRAY_INIT" />
52 - <property name="severity" value="info" />
53 - </module>
54 - <module name="NoWhitespaceBefore">
55 - <property name="allowLineBreaks" value="true" />
56 - <property name="tokens" value="SEMI,DOT,POST_DEC,POST_INC" />
57 - <property name="severity" value="info" />
58 - </module>
59 - <module name="OperatorWrap">
60 - </module>
61 - <module name="ParenPad">
62 - </module>
63 - <module name="TypecastParenPad">
64 - </module>
65 - <module name="WhitespaceAfter">
66 - <property name="tokens" value="COMMA" />
67 - <property name="severity" value="info" />
68 - </module>
69 - <module name="WhitespaceAround">
70 - <property name="severity" value="info" />
71 - </module>
72 - <module name="AvoidNestedBlocks">
73 - </module>
74 - <module name="EmptyBlock">
75 - </module>
76 - <module name="LeftCurly">
77 - </module>
78 - <module name="NeedBraces">
79 - <property name="severity" value="info" />
80 - </module>
81 - <module name="EmptyStatement">
82 - </module>
83 - <module name="EqualsHashCode">
84 - </module>
85 - <module name="HiddenField">
86 - <property name="ignoreConstructorParameter" value="true" />
87 - <property name="ignoreSetter" value="true" />
88 - </module>
89 - <module name="InnerAssignment">
90 - </module>
91 - <module name="MissingSwitchDefault" />
92 - <module name="SimplifyBooleanExpression">
93 - <message key="simplify.expression" value="Der Ausdruck sollte vereinfacht werden." />
94 - </module>
95 - <module name="SimplifyBooleanReturn">
96 - </module>
97 - <module name="ArrayTypeStyle">
98 - </module>
99 - <module name="TodoComment">
100 - </module>
101 - <module name="UpperEll">
102 - </module>
103 - <module name="ReturnCount">
104 - <property name="max" value="8" />
105 - </module>
106 - <!-- <module name="MagicNumber">
107 - <metadata name="net.sf.eclipsecs.core.comment"
108 - value="-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9"/>
109 - <property name="ignoreNumbers" value="-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9"/>
110 - <property name="severity" value="info"/>
111 - </module> -->
112 - <module name="ReturnCount">
113 - <property name="max" value="4" />
114 - <message key="return.count"
115 - value="Möglichst nicht mehr als {1,number,integer} return-Anweisungen." />
116 - </module>
117 - <module name="JavadocType">
118 - <property name="authorFormat" value=".{2,}" />
119 - <message key="type.tagFormat" value="Autor sollte mindestens zwei Buchstaben haben" />
120 - </module>
121 - <module name="JavadocVariable">
122 - <property name="scope" value="public" />
123 - </module>
124 - <module name="ConstantName">
125 - <message key="name.invalidPattern"
126 - value="Nur Großbuchstaben, Zahlen und Unterstriche für Konstanten verwenden." />
127 - </module>
128 - <module name="ModifierOrder">
129 - </module>
130 - <module name="CyclomaticComplexity">
131 - <property name="max" value="20" />
132 - </module>
133 - <module name="NPathComplexity">
134 - <property name="max" value="80" />
135 - </module>
136 - <module name="RightCurly">
137 - </module>
138 - </module>
139 - <module name="LineLength">
140 - <property name="max" value="140" />
141 - <property name="fileExtensions" value="java" />
142 - <property name="ignorePattern"
143 - value="^package.*|^import.*|a href|href|http://|https://|ftp://" />
144 - </module>
145 -
146 -
147 - <module name="JavadocPackage" />
148 - <module name="FileLength">
149 - <property name="max" value="1000" />
150 - </module>
151 - <module name="FileTabCharacter">
152 - <property name="severity" value="info" />
153 - </module>
154 - <module name="RegexpHeader">
155 - <property name="header" value="^package" />
156 - <message key="header.mismatch" value="Angabe eines Packages fehlt." />
157 - </module>
158 -
159 -</module>
StatCode.png
Author
... ... @@ -1,1 +1,0 @@
1 -xwiki:XWiki.id300818
Größe
... ... @@ -1,1 +1,0 @@
1 -36.6 KB
Inhalt