2013-07-30 15 views
5

Ich erstelle ein neues Plugin für SonarQube, mit dem Entwickler statische Code-Analysen für ESQL-Code durchführen können.SonarQube - Hilfe beim Erstellen eines neuen Sprach-Plugins

Mit Maven kann ich eine Shell eines Plugins erstellen, die die JAR-Datei erzeugt, die ich in den richtigen Ordner platzieren kann, damit sie zu SonarQube hinzugefügt werden kann.

Die nächste Stufe besteht darin, die Java-Klassen für die Regeln zu schreiben, ich bin mir jedoch nicht sicher, wie und wo diese aussehen. Ich verwende das Beispiel aus dem folgenden GIT-Repository: https://github.com/SonarSource/sonar-examples/tree/master/plugins/sonar-reference-plugin

Erstelle ich einfach ein neues Paket mit einigen Klassen? Und wie regiere ich eigentlich?

Antwort

3

Wenn Sie eine Regelengine für die ESQL-Sprache schreiben möchten, müssen Sie zuerst einen Parser für diese Sprache schreiben. Und erst nachdem Sie diese Phase abgeschlossen haben, erstellen Sie eine Regel-Engine basierend auf diesem Parser (mit Besucherklassen, die durch die AST navigieren und unter bestimmten Umständen Probleme verursachen).

Sie einen Blick darauf werfen können, wie wir die Javascript-Plugin implementiert (see the code of version 1.3):

  • die "javascript-Tintenfisch" -Modul ist, wo der Parser
  • die "javascript-checks" Modul geschrieben wird, ist wo die Regel-Engine (basierend auf dem Parser) geschrieben wird
  • Das "Sonar-Javascript-Plugin" -Modul ist das eigentliche Plugin, das den Parser und die Regel-Engine einbettet und die alle erforderlichen Kleber um sie herum bereitstellt.
+0

Vielen Dank, ich werde mir das heute ansehen. Mein Manager hat mich auch gefragt, ob es möglich ist, ein Plugin zu haben, das mehrere Regex ausführt, die alle in einer Datei gespeichert sind. Wäre dies möglich, hat ein Speicher von schnell und schmutzig um ihn herum. Zunächst muss ich nur die ESQL-Anweisungen überprüfen, um sicherzustellen, dass sie mit den Codierungsstandards des Clients übereinstimmen –

Verwandte Themen