国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

編寫SonarQube自定義Java和Xml規則

Imfan / 3219人閱讀

摘要:因為工作需要最近接觸到了,需要根據項目自定義和規則,由于國內的資料實在是比較少,并且官網的資料全是英文的,看起來實在是頭疼,所以希望寫點資料能夠幫助到其他人。

因為工作需要最近接觸到了SonarQube,需要根據項目自定義Java和Xml規則,由于國內的資料實在是比較少,并且官網的資料全是英文的,看起來實在是頭疼,所以希望寫點資料能夠幫助到其他人。
官網地址:https://www.sonarqube.org
在此感謝hu_qingen (古月隨筆) 和 馮澍雨 提供的幫助

基本思路

1、下載官方提供的規則插件包
2、根據需求編寫規則類
3、編譯打包
4、上傳自定義規則插件

下載地址:
1、Java自定義規則插件:
https://github.com/SonarSourc...

2、Xml自定義規則插件:
https://sonarsource.bintray.c...

開發環境

JDK1.8以上
Mavean
Jenkins

編寫方法

目前SonarQube自定義規則支持的方式有兩種: 編寫java類和編寫XPath表達式,這兩種方式都是基于AST(Abstract Syntax Tree抽象語法樹)語法結構來實現的。
1、Xpath方式
需求:
從Java代碼中查找是否存在 while {}這種語法結構

表達式代碼:
//WhileStatement[not(Statement/Block)]

步驟:
將表達式代碼放入自定義規則插件中的Expression中

這種方式需要借助第三方工具來寫表達式,并且要對Xpath語法比較熟練,我覺得并不是很強大,需要花一定的時間學習。

2、Java方式
需求:從Xml文件中查找,元素是否存在“zbc_test”這樣的內容
步驟:
① 創建自定義規則類
sonar-xml-plugin/src/main/java/org/sonar/plugins/check

② 根據規則需求編寫代碼

③ 注冊新加入的規則

④ 編寫規則描述及等級分類文件,名字要和規則類中的Key相同或者規則類名相同

sonar-xmlplugin/src/main/resources/org/sonar/l10n/xml/rules/xml/DbSchemalCheck.html

sonar-xml-plugin/src/main/resources/org/sonar/l10n/xml/rules/xml/DbSchemalCheck.json

編譯打包

Eclipse選擇要編譯打包的項目文件,使用Maven進行編譯,如果編譯時不需要進行單元測試,可以跳過測試。

編譯成功

將編譯好的插件上傳至指定路徑:/sonarqube-6.3/extensions/plugins

重新啟動SonarQube,進入菜單Administration—System - Update Center 查看自定義規則插件是否安裝成功

查看自定義規則

進入SonarQube - Rules 選擇XML可以查看剛剛編寫的自定義規則:

自定義規則的描述如下:

測試自定義規則

兩種方法,編寫單元測試類和手工測試,需要根據規則的復雜程度進行選擇。
編寫Java單元測試類:
java-custom-rules/src/test/java/org/sonar/samples/java/checks/MyCustomSubscriptionRuleTest.java

編寫Xml單元測試類:

sonar-xml-plugin/src/test/java/org/sonar/plugins/xml/checks/IllegalTabCheckTest.java

手工測試:

進入Jenkins,選擇要掃描的項目進行構建,構建完成后點擊右側的SonarQube藍色圖標,查看掃描結果

選擇左側的選項,查看所有存在問題的文件和錯誤規則

點擊文件名查看所有掃描出來的錯誤代碼及說明

總結

剛開始以為只要寫幾個表達式,就可以很方便實現復雜的規則,但是摸索了幾天查了幾天的Google ,才知道還是要下載官方的自定義規則插件,然后用Java編寫自己的規則類,饒了一大圈很累。
我還下載了其他的一些SonarQube插件,通過查看代碼發現,基本都遵守并實現了官方的Plugin接口

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/70121.html

相關文章

  • 使用Jenkins+Sonarqueb進行動化測試代碼質量檢測

    摘要:是一個用于代碼質量管理的開源平臺。支持,此處以為例。注意,此處必須保證該私鑰對應的公鑰即必須配置在上,否則會失敗配置完成后點擊。單元測試利用命令運行虛擬機進行單元測試,然后把輸出結果數據生成報告。 摘要: Jenkins Jenkins是一款開源的持續集成工具,它的特點:易于安裝、易于配置、可擴展(自己開發插件),并且它擁有數以百計的成熟插件,這種插件式的特點提供可做任何事情的可能。 ...

    ormsf 評論0 收藏0
  • 使用Jenkins+Sonarqueb進行動化測試代碼質量檢測

    摘要:是一個用于代碼質量管理的開源平臺。支持,此處以為例。注意,此處必須保證該私鑰對應的公鑰即必須配置在上,否則會失敗配置完成后點擊。單元測試利用命令運行虛擬機進行單元測試,然后把輸出結果數據生成報告。 摘要: Jenkins Jenkins是一款開源的持續集成工具,它的特點:易于安裝、易于配置、可擴展(自己開發插件),并且它擁有數以百計的成熟插件,這種插件式的特點提供可做任何事情的可能。 ...

    codercao 評論0 收藏0
  • sonarlint在idea&eclipse中安裝與使用

    摘要:特點開源的代碼質量管控平臺,我們使用的即為。一個擴展插件,可以安裝在與等開發工具中中的使用安裝,搜索。連接的主要目的是同步分析規則質量規則與自定義設置。結果同步顯示同部分,此部分要求為。 介紹 ? 代碼質量管理的開源平臺,用于管理源代碼的質量 通過插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十幾種編程語...

    kycool 評論0 收藏0
  • 每個Java程序員需要了解的8個Java開發工具

    摘要:下面列出了個有助于你開發應用程序最好的工具。官方網站是一個集多功能于一身的故障排除工具。此輕便的工具有著驚人的分析能力。它提供了規則警報閾值排除和設置功能。官方網站以上就是每個程序員需要了解的個開發工具,希望對你有所幫助。 Java是計算機應用程序編程語言,被廣泛用于創建Web應用、服務器處理、用戶端的API開發乃至數據庫等多個領域。下面列出了8個有助于你開發Java應用程序最好的Ja...

    Sleepy 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<