2013-07-30 17 views
5

我正在爲SonarQube創建一個新的插件,它允許開發人員對ESQL代碼執行靜態代碼分析。SonarQube - 幫助創建新的語言插件

使用Maven我可以構建一個插件的外殼,它生成JAR文件,我可以將它放在正確的文件夾中,以便將它添加到SonarQube中。

下一階段是爲規則編寫Java類,但是我不確定這些規則是什麼,在哪裏。我正在使用以下GIT存儲庫中的示例:https://github.com/SonarSource/sonar-examples/tree/master/plugins/sonar-reference-plugin

我是否簡單地使用某些類創建新的包?我如何確定規則?

回答

3

如果您想爲ESQL語言編寫規則引擎,這意味着您必須先爲此語言編寫解析器。只有當你完成這個階段後,你纔會創建一個基於該解析器的規則引擎(帶有瀏覽AST的訪問者類並在特定情況下產生問題)。

你可以看看我們是如何實現的JavaScript的插件(see the code of version 1.3):

  • 的「JavaScript的魷魚」模塊,語法分析器寫入
  • 的「JavaScript的檢查」模塊其中規則引擎(基於解析器)被編寫爲
  • 「sonar-javascript-plugin」模塊是實際的插件,它嵌入解析器和規則引擎,並提供所有必需的粘貼。
+0

非常感謝,今天我會看看。我的經理也問我是否可能有一個運行多個正則表達式的插件,它們都存儲在一個文件中。 這是可能的,它周圍有一個快速和骯髒的方式存儲。首先,我只需要檢查ESQL語句以確保它與客戶端編碼標準相匹配 –