Frage

Ich habe ein einfaches Problem, wahrscheinlich mit einer einfachen Antwort, aber ich kann nicht finden, was es ist.Wir möchten SonarQube zusammen mit Checkstyle und einigen anderen Tools bereitstellen, können jedoch nicht herausfinden, ob es für eine zentralisierte Serverbereitstellung oder auf jedem Entwicklercomputer gedacht ist?Alle Tutorials zeigen Installationen auf separaten Computern und die Verwendung im lokalen Host, während es ein Beispiel für eine öffentliche Instanz gibt und die Anforderungen und Spezifikationen sicherlich dienstähnlich aussehen.

Andererseits verstehe ich nicht, wie die Entwickler ihren Code zur Überprüfung einreichen, ob er sich auf einem Server befindet.

Kurz gesagt, wie wird es eingesetzt?Jede Checkliste oder ähnliches wäre eine große Hilfe.

War es hilfreich?

Lösung

Sonarqube (früher nur "Sonar") ist ein serverbasiertes System. Natürlich können Sie es auf Ihrem lokalen Computer installieren (die Hardwareanforderungen sind minimal). Es ist jedoch ein zentraler Server mit einer Datenbank.

-analysen werden von einigen Sonar-"Client" -Software ausgeführt, die der Sonar-Runner, die SONAR-AN-Task, das SONAR Eclipse-Plugin usw. sein könnte. Die Analyseergebnisse können automatisch auf den Server hochgeladen werden, wo er über die Sonar-Webanwendung.

In einer Umgebung mit vielen Entwicklern sollten Sie einen Build-Server (z. B. Hudson oder Jenkins) ausführen, der automatische Sonar-Analysen als Teil des nächtlichen Builds ausführt. Andere Zeitpläne sind möglich, aber die Entwickler sollten wissen, wann sie Aktualisierungen der serverseitigen Analyseergebnisse erwarten können. Die Ergebnisse der automatisierten Analyse können im Eclipse-Editor des einzelnen Entwicklers über das SONAR Eclipse-Plugin angezeigt werden.

Die architektonische Dokumentation auf Sonar ist ziemlich spärlich. Ich habe nach einem Bild gesucht, um das zu visualisieren, was ich gerade beschrieben habe, sondern konnte nicht finden ...

Andere Tipps

Die SonarQube "Runtime" -Architektur besteht aus mehreren Elementen:

  1. SonarQube-Server.Es enthält eine Datenbank (z. B. MySQL) und eine eingebetteter Webserver (Tomcat).Der SonarQube-Server speichert die ergebnisse von Analysen (die Metriken), führt aber den Code nicht aus analysieren.Dieser Server stellt eine Weboberfläche bereit, die das Dashboard von anzeigt die Projekte, verschiedene Metriken und Drilldown in Code, Admin-Optionen.Es verwendet eine steckbare Architektur - Sie können Funktionen über Plug-Ins hinzufügen / entfernen.
  2. Programm, das die Codeanalyse auf dem Entwicklercomputer ausführt.Es gibt Optionen: (ein) wenn sie Eclipse oder IntelliJ verwenden, können sie das entsprechende SonarLint-Plug-In verwenden, das Konfigurationseigenschaften, Menüoptionen zum Ausführen von Analysen, eine Ansicht zum Anzeigen von Verstößen usw. bereitstellt.; (B) entwickler können die Codeanalyse auch über Maven ausführen (mvn sonar:sonar) oder gradle (gradlew sonarqube); (c) entwickler können die verschiedenen Codeanalysen über ein Programm namens SonarQube Runner ausführen.Alle diese Optionen von Programmen, die die Analyse auf dem Entwicklercomputer ausführen, müssen für die Kommunikation mit einem SonarQube-Server konfiguriert sein.Wenn Sie beispielsweise die Codeanalyse in IntelliJ mit SonarLint ausführen, werden die Metriken auf den Server hochgeladen.Dieser Server wird normalerweise von allen Entwicklern gemeinsam genutzt, kann aber auch localhost sein.
  3. Programm, das die Codeanalyse auf dem CI/ CD-Server ausführt.Der Job / die Pipeline, die ein Softwareprojekt erstellt, kann für die Ausführung der SonarQube-Codeanalyse konfiguriert werden.Dies kann über Maven oder Gradle wie auf dem Entwicklercomputer oder über ein Plug-In erfolgen.Es gibt SonarQube-CI-Plug-Ins für Jenkins, Hudson, Bamboo und andere.Abhängig von der Größe Ihres Projekts möchten Sie möglicherweise die Codeanalyse so konfigurieren, dass sie nur einmal am Tag ausgeführt wird und nicht bei jedem Code-Commit oder bei Änderungen an Abhängigkeiten.Die auf dem CI-Server ausgeführte SonarQube-Codeanalyse sendet die generierten Metriken ebenfalls an den SonarQube-Server.

Die SonarQube-Architekturdokumentation ist sehr schlecht (um nicht zu sagen abwesend), daher ist es schwierig, ein Gesamtbild zu erhalten.Ich hoffe, das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top