Änderungen von Dokument Checkstyle u. Statische Codeanalyse
Zuletzt geändert von Celina Bock am 2025/09/17 10:43
Von Version 1.5
bearbeitet von Celina Bock
am 2025/07/08 09:31
am 2025/07/08 09:31
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version 10.1
bearbeitet von Celina Bock
am 2025/07/08 10:08
am 2025/07/08 10:08
Änderungskommentar:
Neuen Anhang 1751962116852-287.png hochladen
Zusammenfassung
-
Seiteneigenschaften (1 geändert, 0 hinzugefügt, 0 gelöscht)
-
Anhänge (0 geändert, 5 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -1,167 +1,31 @@ 1 - Fürdie Programmierfächer aus Semester 1 und 2 wurdeCheckstyle eingeführt. Beider Aufgabenerstellung muss der Haken bei "statische Codeanalyse" gesetzt werden.Späteres Hinzufügen von Checkstyle ist umständlich (Export in einen anderen Kurs,1 +== Checkstyle einrichten == 2 2 3 +Für die Programmierfächer aus Semester 1 und 2 wurde Checkstyle eingeführt. 3 3 5 +* Bei der Aufgabenerstellung muss der Haken bei "statische Codeanalyse" gesetzt werden. //Späteres Hinzufügen von Checkstyle ist umständlich!// 4 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 +[[image:StatCode.png]] 7 7 9 +(% style="color:#c0392b" %)**Checkstyle Konfiguration findet sich unter Anhänge.** 8 8 9 -<module name="Checker"> 10 - <!-- artemis conifg --> 11 - <property name="severity" value="warning" /> 11 +* Weitere Eingaben tätigen und Test Repository clonen. 12 +* 12 12 13 - <property name="fileExtensions" value="java" /> 14 14 15 - <!-- See https://checkstyle.org/filefilters/beforeexecutionexclusionfilefilter.html --> 16 16 17 - <module name="BeforeExecutionExclusionFileFilter"> 18 - <!-- Filtert alle Dateien, die nicht SortedArray heißen --> 19 - <property name="fileNamePattern" value="^(?!.*([ 20 -/])?(SortedArray)\.java$).*" /> 21 - </module> 16 +== Entfernen von Spotbugs und PMD oder Checkstyle == 22 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> 18 +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. 152 152 153 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> 21 +Unter Build-Plane bearbeiten finden sich die mvn commands, um die genannten Tools auszuführen. 165 165 166 -</module> 23 +[[image:1751960876121-491.png]] 24 + 25 + 26 +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. 27 + 28 +[[image:1751961576022-284.png]] 29 + 30 + 167 167
- 1751960876121-491.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.id300818 - Größe
-
... ... @@ -1,0 +1,1 @@ 1 +21.6 KB - Inhalt
- 1751961576022-284.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.id300818 - Größe
-
... ... @@ -1,0 +1,1 @@ 1 +70.6 KB - Inhalt
- 1751962116852-287.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.id300818 - Größe
-
... ... @@ -1,0 +1,1 @@ 1 +21.5 KB - Inhalt
- Checktyle.xml
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +xwiki:XWiki.id300818 - Größe
-
... ... @@ -1,0 +1,1 @@ 1 +5.8 KB - Inhalt
-
... ... @@ -1,0 +1,159 @@ 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,0 +1,1 @@ 1 +xwiki:XWiki.id300818 - Größe
-
... ... @@ -1,0 +1,1 @@ 1 +36.6 KB - Inhalt