Basisprojekt Checkliste

Last modified by Marco Grawunder on 2026/10/19 15:51

Fehlerbehebung: IntelliJ, Maven und Serverstart

Diese Checkliste hilft bei Problemen mit dem Import des Basisprojekts, fehlenden Maven-Abhängigkeiten, generierten Klassen und dem Start des Spring-Boot-Servers. Arbeite die Punkte der Reihe nach durch. Halte die erste aussagekräftige Fehlermeldung fest.

Information

Schnelltest: Funktioniert der Maven-Build im Terminal, aber nicht in IntelliJ, liegt der Fehler häufig bei der Projekt- oder JDK-Konfiguration von IntelliJ. Funktioniert der Build, aber nicht der Serverstart, prüfe zuerst die Run Configuration und die erste Caused by-Meldung.

A. Java und Maven überprüfen

☐ A1 – Java-Version im Terminal prüfen. In einem Terminal im Projektverzeichnis ausführen:

java -version
mvn -version

Das Projekt benötigt ein geeignetes JDK (für das Basisprojekt: Java 21). Wichtig: `mvn -version` zeigt die Java-Laufzeit, mit der Maven gestartet wird. Diese kann sich von `java -version` unterscheiden.

☐ A2 – Project SDK kontrollieren. In IntelliJ: File → Project Structure → Project → SDK. Ein JDK 21 auswählen; nicht nur eine JRE.

☐ A3 – Module SDK kontrollieren. Unter Project Structure → Modules sollten die Module das Project SDK bzw. ein passendes JDK verwenden.

☐ A4 – Maven Runner JRE prüfen. Unter Settings → Build, Execution, Deployment → Build Tools → Maven → Runner die JRE kontrollieren. Möglichst dasselbe JDK wie für das Projekt wählen.

☐ A5 – Maven Importer JDK prüfen. Unter Settings → Build Tools → Maven → Importing prüfen, mit welchem JDK der Maven-Import durchgeführt wird. Die Menüführung kann je nach IntelliJ-Version abweichen.

B. Maven-Projekt korrekt importieren

☐ B1 – Richtiges Verzeichnis geöffnet? In IntelliJ das Verzeichnis mit der übergeordneten `pom.xml` öffnen, nicht nur das `server`-Unterverzeichnis.

☐ B2 – Maven-Projekt erkannt? Das Maven-Toolfenster muss das Root-Projekt zeigen. Falls nicht: Rechtsklick auf die Root-`pom.xml` → Add as Maven Project bzw. Load Maven Project.

☐ B3 – Alle Module eingebunden? Im Maven-Toolfenster prüfen, ob `server`, `client` und die gemeinsam genutzten Module entsprechend der Root-`pom.xml` angezeigt werden.

☐ B4 – Maven-Projekt neu laden. Im Maven-Toolfenster Reload All Maven Projects auswählen. Anschließend warten, bis der Import abgeschlossen ist, und das Build- bzw. Problems-Fenster ansehen.

☐ B5 – Maven-Offlinemodus deaktivieren. Prüfen, dass Work Offline im Maven-Toolfenster nicht aktiviert ist.

☐ B6 – Maven-Einstellungen vergleichen. Unter Settings → Build Tools → Maven das Maven Home, eine eventuell gesetzte `settings.xml` und den Pfad zum lokalen Repository prüfen. IntelliJ und das Terminal sollten möglichst dieselbe Maven-Konfiguration verwenden. Bei Proxy- oder Repository-Problemen auch VPN/Netzwerk kontrollieren.

C. Maven-Build und generierte Klassen

☐ C1 – Vollständigen Build aus dem Projekt-Root ausführen. Im Terminal im Verzeichnis der übergeordneten `pom.xml`:

mvn -U clean install -DskipTests

`-U` überprüft aktualisierte Snapshots; `clean` entfernt Build-Ergebnisse; `install` installiert erfolgreich gebaute Artefakte lokal. `-DskipTests` überspringt die Ausführung der Tests, nicht zwingend ihre Kompilierung. Wenn der Build fehlschlägt: zuerst dessen erste relevante Fehlermeldung untersuchen.

☐ C2 – OpenAPI-Codegenerierung prüfen. Unter den betroffenen Modulen im Verzeichnis `target/generated-sources` nachsehen, ob die erwarteten API-Klassen und DTOs generiert wurden. Wenn nicht, auf Fehler in der Maven-Plugin-Ausführung achten.

☐ C3 – Generierte Quellen in IntelliJ einbinden. Falls die Dateien vorhanden sind, IntelliJ sie aber nicht findet: Maven-Projekte neu laden und in Project Structure → Modules → Sources prüfen, ob die Verzeichnisse als Generated Sources Roots erkannt werden.

☐ C4 – Lombok prüfen. Sicherstellen, dass die Lombok-Unterstützung in IntelliJ aktiviert ist und Annotation Processing korrekt eingerichtet ist. Typisches Symptom: IntelliJ findet generierte Getter, Setter oder Konstruktoren nicht.

☐ C5 – MapStruct prüfen. Wenn Mapper-Implementierungen fehlen: die Annotation-Processor-Konfiguration kontrollieren und nach generierten Implementierungen (häufig in `target/generated-sources/annotations`) suchen. Danach Maven neu importieren.

D. IntelliJ-Startkonfiguration des Servers

☐ D1 – Richtige Startklasse wählen. Die `ServerApp` im Server-Modul starten, nicht eine Client- oder andere Main-Klasse.

☐ D2 – Run Configuration kontrollieren. Unter Run → Edit Configurations die Konfiguration für `ServerApp` öffnen: passendes JDK/JRE auswählen und den Klassenpfad des Server-Moduls verwenden (je nach IntelliJ-Version Use classpath of module).

☐ D3 – Run Configuration neu erzeugen. Falls eine alte oder fehlerhafte Konfiguration existiert, diese entfernen und die `main`-Methode von `ServerApp` direkt über den grünen Startpfeil ausführen.

☐ D4 – Working Directory prüfen. Wenn die Anwendung Dateien über relative Pfade lädt, muss das Arbeitsverzeichnis zur Projektkonfiguration passen. Den Pfad nicht auf Verdacht ändern, sondern bei File not found-Meldungen prüfen.

☐ D5 – Aktives Spring-Profil prüfen. Nur wenn die Anleitung beziehungsweise der gewünschte Entwicklungsmodus es verlangt, das Profil `dev` über `SPRING_PROFILES_ACTIVE=dev` oder ein entsprechendes VM-/Programmargument aktivieren. Das Entwicklungsprofil ist nicht automatisch nötig, damit Spring Boot überhaupt startet.

E. Fehler beim Spring-Boot-Start

☐ E1 – Port bereits belegt? Bei `Port ... was already in use` prüfen, ob ein anderer Serverprozess läuft, und diesen beenden oder den Port gezielt ändern.

☐ E2 – ApplicationContext-Fehler? Bei `APPLICATION FAILED TO START` die erste relevante `Caused by:`-Meldung ermitteln. Die letzte Zeile ist häufig nur eine Folge des eigentlichen Fehlers.

☐ E3 – Konfiguration oder externe Dienste fehlen? Bei `DataSource`-, Netzwerk- oder Konfigurationsfehlern kontrollieren, ob benötigte lokale Ressourcen, Umgebungsvariablen und Konfigurationsdateien vorhanden sind.

☐ E4 – Fehlende Spring-Beans? Bei `NoSuchBeanDefinitionException` oder `UnsatisfiedDependencyException` prüfen, ob Komponenten/Mapper generiert wurden, durch Component Scanning erfasst werden und die erforderlichen Abhängigkeiten verfügbar sind.

☐ E5 – Erfolgreichen Serverstart verifizieren. In der Run-Konsole auf die erfolgreiche Spring-Boot-Startmeldung achten. Der Prozess muss weiterlaufen; bei Bedarf den vorgesehenen HTTP-Endpunkt im Browser oder mit einem API-Client testen.

Typische Fehlermeldungen

 Meldung / Symptom  Mögliche Ursache  Erster Prüfschritt
 `Cannot resolve symbol`  Maven-Import oder generierte Quellen fehlen  B2–B4 und C2–C3
 `invalid target release: 21`  Maven verwendet ein zu altes JDK  A1, A4
 `Could not resolve dependencies`  Repository, Netzwerk, Offline-Modus, Koordinaten  B5–B6, C1
 `package ... does not exist`  Klassen nicht generiert oder Abhängigkeiten fehlen  C1–C3
 Fehlende Getter/Setter  Lombok / Annotation Processing  C4
 Fehlende Mapper-Implementierung  MapStruct / Annotation Processing  C5
 `No qualifying bean of type ...`  Bean fehlt oder wird nicht gefunden  E4
 `Port ... was already in use`  Port belegt  E1
 `Could not find or load main class`  Run Configuration / Klassenpfad falsch  D1–D3
 `UnsupportedClassVersionError`  Laufzeit-Java zu alt  A1–A5, D2

Wenn das Problem weiterhin besteht

Bitte sende den Tutorinnen und Tutoren bzw. der Lehrveranstaltungsbetreuung folgende Informationen:

  • Betriebssystem und IntelliJ-Version.
  • Ausgabe von `java -version` und `mvn -version`.
  • Ergebnis des Maven-Builds aus dem Projekt-Root (`mvn -U clean install -DskipTests`): erfolgreich oder fehlgeschlagen? Falls fehlgeschlagen: erste relevante Fehlermeldung und betroffener Maven-Schritt.
  • Tritt das Problem nur in IntelliJ auf? Oder scheitert der Build auch im Terminal?
  • Beim Serverstart: vollständige erste relevante `Caused by:`-Meldung und gegebenenfalls `APPLICATION FAILED TO START`-Abschnitt.
  • Wenn möglich einen Screenshot der Run Configuration (ohne Zugangsdaten/Secrets).
Warning

Nicht vorschnell löschen: Bitte nicht als ersten Schritt das komplette lokale Maven-Repository (`/.m2/repository`) entfernen oder das Projekt neu klonen. Erst die konkreten Fehlermeldungen und Konfigurationsunterschiede prüfen.


Hinweis: Die Kästchen (☐) sind eine visuelle Checkliste und speichern keinen Abhakstatus.