SonarQube添加自定義規(guī)則(二)

SonarQube提供了獨立的log服務,命令行啟動時輸出的是sonar.log的內(nèi)容。上述Netty4Transport exception caught on transport layer遠程連接關閉的問題log屬于es.log(elastic search)的部分。

而由于自定義規(guī)則的plugin導致的問題會在ce.log(Compute Engine)里有具體的提示(但這個內(nèi)容居然不在命令行輸出,導致一直對上面的遠程連接失敗摸不著頭腦)?;緯蓄愃啤?/p>

org.sonar.updatecenter.common.exception.IncompatiblePluginVersionException: The plugin 'java' is in version 5.10.1.16922 whereas the plugin 'javacustom' requires a least a version 6.3.0.21585.

猜測沒錯,屬于兼容性問題。關鍵的兩個版本值——

  • sonar.version的值為plugin支持的SonarQube最低版本(目前8.0以上對應的LTS版本為7.9;目前看7.6根7.7還是兼容的)。最新的兼容矩陣在7.9以下版本里沒有對應的說明。
  • sonarjava.version對應plugin支持的版本,需要跟使用的SonarQube中安裝的版本一致,管理員登錄后,可以在admin/marketplace?filter=installed位置查看SonarJava的版本。

根據(jù)pom.xml的git log對其他的依賴進行對應的修改。

# current 
<sonar.version>8.2.0.32929</sonar.version>
<sonarjava.version>6.3.0.21585</sonarjava.version>

# modify
<sonar.version>7.7</sonar.version>
<sonarjava.version>5.10.1.16922</sonarjava.version>

回滾到上述版本后,目前的測試方法都失效了。——這是因為org.sonar.java.checks.verifier.JavaCheckVerifierpublic static CheckVerifier newVerifier()方法在2020/3/17加入的。SONARJAVA-3315 Unify CheckVerifiers accross the plugin (#2871)e7f1493fa8572fa88ed528be37fc8debabc5e671

此時本地再執(zhí)行單元測試時,會報錯——

The rule 'f.newTuple20(Object, Object)' has already been defined somewhere in the grammar.

這兩個地方都討論了這個問題:

本地測試無法正常運行(環(huán)境改的比較多了),但不影響打包操作。mvn clean install可以正常生成jar包。

放到對應的位置,重啟SonarQube,可以看到這個自定義的plugin——

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容