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

Verstecke letzte Bearbeiter
Celina Bock 9.11 1 == Checkstyle einrichten ==
Celina Bock 1.5 2
Celina Bock 11.3 3 Für die Programmierfächer aus Semester 1 und 2 wurde Checkstyle eingeführt mit mehr Einschränkungen als es die Java Sun Konvention vorsieht (Zeilenlänge, Npath Complexity und co).
Celina Bock 9.11 4
Celina Bock 11.3 5
Celina Bock 12.1 6 __Steps__
7
Celina Bock 9.14 8 * Bei der Aufgabenerstellung muss der Haken bei "statische Codeanalyse" gesetzt werden. //Späteres Hinzufügen von Checkstyle ist umständlich!//
Celina Bock 9.11 9
Celina Bock 11.2 10 [[image:StatCode.png||data-xwiki-image-style-border="true"]]
Celina Bock 6.7 11
Celina Bock 7.2 12
Celina Bock 9.14 13 * Weitere Eingaben tätigen und Test Repository clonen.
Celina Bock 11.2 14 * Geclontes Repo enthält 3 statische Codeanalyse Tools. Alle Konfigurationsdateien befinden sich unter **staticCodeAnalysisConfig.**
Celina Bock 7.2 15
Celina Bock 10.2 16 [[image:1751962116852-287.png]]
Celina Bock 9.12 17
Celina Bock 9.14 18
Celina Bock 11.1 19 * Inhalt der Checkstyle Konfiguration austauschen mit unserer Konfiguration. (% style="color:#c0392b" %)**Checkstyle Konfiguration findet sich unten unter Anhänge.**
Celina Bock 13.30 20 * **BeforeExecutionExclusionFileFilter **in der Konfiguration anpassen. Das enthaltene Regex filtert alle Dateien heraus, die nicht den genannten String enthalten. Das hat den Vorteil, wenn den Studierenden mehrere fertige Dateien zur Verfügung gestellt werden, diese nicht von Checkstyle geprüft werden. Dementsprechend werden im Regex nur Dateien gelistet, die von Studirenden bearbeitet werden. Nachteil ist, dass neue erstellte Dateien ggf auch nicht getestet werden. //Falls das Filtern nicht erwünscht ist, das gesamte Modul auskommentieren!//
Celina Bock 10.3 21
22
23
Celina Bock 17.2 24 == Sichtbarkeit ==
25
Celina Bock 18.2 26 Die Sichtbarkeit der Chekstyle Warnings und Errors muss in der Bewertungsansicht konfiguriert werden. Ggf kann es sein, dass das Ruleset zwar korrekt definiert ist, aber die Ergebnisse nicht angezeigt werden.
Celina Bock 17.2 27
Celina Bock 19.1 28 Anders gesagt: **Checkstyle kann korrekt konfiguriert sein und der Studerende erhält dennoch kein Rückmeldung.**
Celina Bock 17.2 29
Celina Bock 19.1 30 Um den Studierenden das Feedback zu übermitteln muss min.Feedback angegeben sein. Je nach Wunsch kann hier auch eine Bewertung stattfinden.
Celina Bock 17.2 31
Celina Bock 18.2 32 [[image:Artemis_Checksyle_Feedback.png]]
Celina Bock 17.2 33
Celina Bock 17.5 34
35
Celina Bock 18.2 36
37
Celina Bock 6.5 38 == Entfernen von Spotbugs und PMD oder Checkstyle ==
Celina Bock 1.5 39
Celina Bock 9.2 40 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.
Celina Bock 1.5 41
Celina Bock 6.2 42
Celina Bock 9.2 43 Unter Build-Plane bearbeiten finden sich die mvn commands, um die genannten Tools auszuführen.
Celina Bock 6.2 44
Celina Bock 11.2 45 [[image:1751960876121-491.png||data-xwiki-image-style-border="true"]]
Celina Bock 8.2 46
47
Celina Bock 9.9 48 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.
Celina Bock 9.2 49
Celina Bock 11.2 50 [[image:1751961576022-284.png||data-xwiki-image-style-border="true"]]
Celina Bock 9.10 51
52
Celina Bock 13.31 53 === Mögliche Seiteneffekte ===
Celina Bock 13.32 54
Celina Bock 14.3 55 Wenn eines der Plugins in dem Test Projekt entfernt wurde (pom.xml und Konfigurationsdatei), aber jedoch nicht das Build Skript angepasst wurde, kann es passieren, dass die verbliebenen Plugins keine Reports erstellen. Dementsprechend kann es sein, dass Checkstyle korrekt konfiguriert wurde, aber keine Ergebnisse mitgeteilt werden. Dies ist in der Oberfläche nicht ersichtlich!  Bei Problemen mit den genannten Plugins lohnt es sich den Build Log anzusehen. Die Weiterleitung zu unserem Build Agent lässt sich in der Übersicht mit den Einstellungen zur Aufgabe finden. Beim Click auf
Celina Bock 13.40 56
Celina Bock 14.3 57 [[image:1751964547791-705.png||data-xwiki-image-style-border="true"]]
Celina Bock 13.40 58
59
Celina Bock 14.2 60
Celina Bock 13.40 61