Implementierung von SonarQube in eine Spring Boot Anwendung.

Implementierung von SonarQube in eine Spring Boot Anwendung.
Was ist SonarQube?
SonarQube ist eine Open-Source-Plattform zur statischen Code-Analyse, die Entwicklern und Teams dabei hilft, die Qualität ihres Quellcodes zu überwachen und zu verbessern. Die Hauptziele von SonarQube sind die Identifizierung von Code-Smells, Bugs und Sicherheitslücken sowie die Überwachung der Code-Qualität über die Zeit.
Erstellen von docker-compose.yml
docker-compose.yml
|
|
SonarQube Service
container_name
: Legt den Namen des Docker-Containers für den SonarQube-Dienst fest.image
: Gibt das Docker-Image an, das für den SonarQube-Dienst verwendet werden soll (in diesem Fall “sonarqube”).depends_on
: Definiert die Abhängigkeit des SonarQube-Dienstes von einem anderen Dienst (sonarqube-database), um sicherzustellen, dass die Datenbank vor SonarQube gestartet wird.environment
: Setzt Umgebungsvariablen für die SonarQube-Anwendung, einschließlich JDBC-Verbindungsdaten zur Verbindung mit der PostgreSQL-Datenbank.volumes
: Verbindet Docker-Volumes mit spezifischen Verzeichnissen im SonarQube-Container, um Daten persistent zu speichern.ports
: Macht den SonarQube-Dienst über den Port 9000 auf dem Host erreichbar.
SonarQube Database Service
container_name
: Legt den Namen des Docker-Containers für die SonarQube-Datenbank fest.image
: Gibt das Docker-Image für die PostgreSQL-Datenbank an.environment
: Setzt Umgebungsvariablen für die Konfiguration der PostgreSQL-Datenbank.volumes
: Verbindet Docker-Volumes mit Verzeichnissen im Datenbank-Container, um Daten persistent zu speichern.ports
: Veröffentlicht den Datenbankdienst über den Port 5432 auf dem Host.
Volumes
Definiert verschiedene Docker-Volumes, die für die persistenten Daten des SonarQube-Dienstes und der Datenbank verwendet werden. Diese Volumes ermöglichen es, Daten zwischen Containerinstanzen beizubehalten, auch wenn die Container neu gestartet werden.
docker-compose ausführen
|
|
docker-compose stoppen
|
|
Einbindung von SonarQube in Spring Boot Gradle Projekt
Die Einbindung von SonarQube in einem Spring Boot Gradle Projekt erfolgt über die Datei build.grade
.
Alternativ ist dies über die Datei sonar-project.properties
im Root-Verzeichnis des Projekts möglich.
Einbindung des SonarQube Plugins
|
|
Festlegung der SonarQube Parameter
|
|
Erläuterung der SonarQube Parameter
sonar.host.url
: Die URL von SonarQube, zu der die Analyseergebnisse gesendet werden sollen.sonar.token
: Der Projektschlüssel, der für die Authentifizierung und Autorisierung verwendet wird.- Hier sollte der Token für Ihr spezifisches Projekt angegeben werden.
sonar.projectKey
: Der eindeutige Schlüssel, der das Projekt in SonarQube identifiziert.sonar.projectName
: Der Name des Projekts, wie er in SonarQube angezeigt wird.sonar.sources
: Das Verzeichnis, das die Quellcode-Dateien für die Analyse enthält.sonar.java.source
: Die Java-Version, die für die Quellcode-Analyse verwendet wird.sonar.gradle.skipCompile
: Ob die Kompilierung bei der SonarQube-Analyse übersprungen werden soll.sonar.test.exclusions
: Die Verzeichnisse oder Dateipfade, die von der Test-Analyse ausgeschlossen werden sollen.sonar.exclusions
: Die Verzeichnisse oder Dateipfade, die von der allgemeinen Code-Analyse ausgeschlossen werden sollen.sonar.coverage.exclusions
: Dateipfade, die von der Code-Coverage-Analyse ausgeschlossen werden sollen.sonar.scm.disabled
: Ob die Einbindung des Software Configuration Management (SCM) während der Analyse deaktiviert werden soll.encoding
undcharSet
: Festlegung der Zeichenkodierung für die Code-Analyse.
Nachdem die Analyse ausgeführt wurde, sollte das Projekt unter
http://localhost:9000 erreichbar sein.
Die default Anmeldedaten für SonarQube sind admin
(Benutzername) und admin
(Passwort).