SonarQube ist eine Plattform zur Analyse von Software auf Fehler, Schwachstellen und Code-Smells. Neben der Durchführung einer Vielzahl statischer Analyseprüfungen Ihrer Quelle präsentiert es die Ergebnisse in Form von ausführlichen Berichten, mit denen Sie die Sicherheit und Stabilität Ihrer Anwendung ganz einfach verbessern können.
In unserem vorherigen SonarQube-Beitrag haben wir einen Server eingerichtet und einen Java-Build darauf ausgerichtet. Jetzt werden Sie SonarQube-Berichte verwenden, um Probleme zu finden und zu beheben.
Einrichten eines Java-Projekts
In unserem vorherigen Beitrag haben wir den Beispielcode von SonarSource verwendet . Dieses Mal werden Sie Änderungen vornehmen und diese festschreiben. Sie müssen nur in ein lokales Repository festschreiben, aber Sie können das Repository auch auf GitHub forken, um Ihre Änderungen zu speichern.
plugins {
id „jacoco“
id „java“
id „application“
id „org.sonarqube“ version „3.0“
}
description = ‚Example of SonarQube Scanner for Gradle Usage‘
version = ‚1.0‘
sonarqube {
properties {property ’sonar.projectName‘, ‚SonarQube Test Project‘
}
}
Wenn Sie sie dann nicht in der Befehlszeile angeben möchten, können Sie Ihre Serveradresse und Authentifizierung zu gradle.properties hinzufügen .
org.gradle.jvmargs=-XX:PermSize=512M -XX:MaxPermSize=512M
systemProp.sonar.login=5b2034e871ec685ce42a1399ba6b2080b2c2490d
systemProp.sonar.host.url=http://192.168.7.139:9000
Statische Analyse ausführen
Führen Sie jetzt das SonarQube- Build-Ziel aus.
% ./gradlew sonarqube
BUILD SUCCESSFUL in 7s
3 actionable tasks: 3 executed
Ihr SonarQube-Dashboard enthält die Analyseergebnisse.
Sonarqube hat zwei Code Smells gefunden. Klicken Sie auf den Projekttitel, um mehr zu erfahren. Klicken Sie dann auf das Menü „Probleme“.
Jetzt können Sie die eigentlichen Probleme sehen.
SonarQube gibt Ihnen eine Beschreibung des Problems sowie Informationen zum Typ und dem Zeitpunkt, zu dem es dem Code hinzugefügt wurde. Da diese Anzeige aus einem gegabelten Repo stammt, sind dort Informationen darüber enthalten, wann SonarSource den Code geschrieben hat.
Klicken Sie neben dem ersten Problem auf „Warum ist das ein Problem?“ .
SonarQube zeigt Details zum Problem und dessen Lösung an.
Klicken Sie nun auf das Problem.
SonarQube zeigt Ihnen die Quelldatei mit den darin enthaltenen Problemen.
Ausführen einer neuen Analyse
Fügen wir einen Fehler hinzu. Ändern Sie App.java so, dass es wie folgt aussieht:
package com.acme;
public class App {
private String greeting = „Hello world!“;
public String getGreeting() {
return greeting;
}
public static void main(String[] args) {
System.out.println(new App().getGreeting());
}
public void setGreeting(String greeting) {
if (greeting == „Hello world!“) {
System.out.println(„That’s the same greeting!“);
}
this.greeting = greeting;
}
}
Diese Änderung macht die Begrüßung konfigurierbar. Wenn jedoch eine neue Begrüßung festgelegt wird, wird versucht, den Wert mit dem ==- Operator mit dem Standardwert zu vergleichen.
Übernehmen Sie zuerst diesen Code und führen Sie dann eine neue Analyse aus.
Das Vergleichen von Strings mit == ist ein Fehler. Daher ist die Analyse fehlgeschlagen.
Bevor Sie sich den Code ansehen, werfen Sie einen kurzen Blick auf die Übersicht. Dort steht, dass Sie 10 Minuten technische Schulden mit einem neuen Codegeruch hinzugefügt haben. Wenn Sie auf die 1 klicken , gelangen Sie zum neuen System.out.println() in der neuen Methode, die Sie hinzugefügt haben. SonarQube hilft Ihnen, technische Schulden zu verfolgen, während Sie an Ihrem Code arbeiten.
Auf der Registerkarte „Gesamtcode“ werden Ihnen Gesamtsummen zu Fehlern, Schwachstellen, Sicherheitsproblemen und Code-Smells angezeigt.
Da der Code bereits eine andere Instanz desselben Codegeruchs aufwies, beträgt die gesamte technische Schuld 20 Minuten.
Gehen Sie in die Tiefe des Codes, und SonarQubes zeigt den Fehler direkt an.
Da Sie die Codeänderung übernommen haben, werden genaue Zeitinformationen sowie „git blame“ angezeigt .
Klicken Sie auf einen der Namen auf der linken Seite.
SonarQube speichert mit jedem Bericht detaillierte Git-Informationen.
Beheben Sie den Fehler.
public void setGreeting(String greeting) {
if (greeting.equals(„Hello world!“)) {
System.out.println(„That’s the same greeting!“);
}
this.greeting = greeting;
}
Führen Sie abschließend die Analyse erneut aus.
Der Fehler ist behoben und die Analyse war erfolgreich.
Mehr lesen: 3 Unterschiede zwischen Scrum und Kanban, die Sie kennen müssen
SonarQube verbessert Ihren Code
In diesem Beitrag haben Sie gelernt, wie Sie einen Java-Build in SonarQubes integrieren. Sie haben Beispiele für Codequalitätsberichte sowie im Quellcode angezeigte Mängel gesehen. Anschließend haben Sie den Code geändert, um neue Fehler hinzuzufügen und zu entfernen.
SonarQube erleichtert das Integrieren von Codeanalysen in Ihren Entwicklungsworkflow. In diesem Beitrag haben Sie gesehen, wie einfach es ist, Ihren Anwendungscode zu verbessern.
SonarQube ist eine Plattform zur Analyse von Software auf Fehler, Schwachstellen und Code-Smells. Neben der Durchführung einer Vielzahl statischer Analyseprüfungen Ihrer Quelle präsentiert es die Ergebnisse in Form von ausführlichen Berichten, mit denen Sie die Sicherheit und Stabilität Ihrer Anwendung ganz einfach verbessern können.
In unserem vorherigen SonarQube-Beitrag haben wir einen Server eingerichtet und einen Java-Build darauf ausgerichtet. Jetzt werden Sie SonarQube-Berichte verwenden, um Probleme zu finden und zu beheben.