環境准備
內置數據庫
Sonar安裝成功后,默認內置H2數據庫,用於記錄單次的掃描結果,對同一個project重復掃碼,會覆蓋之前的掃描記錄,所以H2 數據庫只應用於測試,不可以用於生產環境,那如果你是想玩玩,不想長期掃描你的項目,可以不必配置數據庫
自定義數據庫:
- Oracle
- SQL Server(只支持SQL Server 2014 以及 SQL Server2016)
- PostgreSQL
- MYSQL 版本限制: 8.0>MYSQL>=5.6
(注官方說明,從Sonar7.9版本,不再支持Mysql),以下鏈接
**End of Life of MySQL Support : SonarQube 7.9 and future versions do not support MySQL.
Please migrate to a supported database. Get more details at **
https://community.sonarsource.com/t/end-of-life-of-mysql-support
https://jira.sonarsource.com/browse/SONAR-11963
安裝步驟
1.安裝sonarqube:
安裝的是windows 7.4 community社區版
https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.4.zip
我之前是用最新的8.2版本,不過問題很多,而且評價說最新的不是很穩定,不支持mysql,最后使用的7.4版本,
官網下載比較慢,大家如果無法下載可以留言回復我,或者關注文末二維碼私信我。
2.安裝JDK:
我安裝的JDK11(1.8版本無法安裝最新的sonarqube 8.2,7.x是可以的,大家選擇時候需要注意)
如果無法找到下載地址,私信我。
3.選擇數據庫
4.配置:
-
安裝完畢,打開此目錄,運行StartSonar.bat
2.啟動瀏覽器,訪問http://localhost:9000 , 如出現下圖則表示安裝成功。
3.配置連接數據庫 :
打開conf文件夾下的sonar.properties文件,底部追加如下:
如果是SQL Server,追加:
- sonar.jdbc.url=jdbc:sqlserver://10.60.215.202;databaseName=sonar
- sonar.jdbc.username=sa
- sonar.jdbc.password=123456
如果是MYSQL:
- sonar.jdbc.url=jdbc:mysql://10.60.253.34:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
- sonar.jdbc.username=root
- sonar.jdbc.password=123456
- sonar.sorceEncoding=UTF-8
- sonar.login=admin
- sonar.password=admin
4.重啟,即重新運行StartSonar.bat,使用admin ,admin登陸系統。配置數據庫之后,會初始化表信息,耐心等待一段時間。
5.Sonar中創建project ,並配置命令
5.在IDEA中進到要掃描的項目根目錄,執行: mvn sonar:sonar \ -Dsonar.projectKey=test_project \ -Dsonar.host.url=http://10.60.25.121:9000 \ -Dsonar.login=6dc9cd89575d252d12d450267a64c0ee4bca3c65
掃描結果:
這里掃碼的時候,IDEA提示lifecycle-mapping jar包找不到,使用這個方式安裝一下就好
git clone https://github.com/mfriedenhagen/dummy-lifecycle-mapping-plugin.git , 然后mvn package即可安裝這個缺失的包。
集成阿里巴巴p3c
該指南整合了阿里巴巴集團技術團隊多年來的最佳編程實踐。 隨着我們鼓勵重用和更好地理解彼此的程序,大量的Java編程團隊對項目之間的代碼質量提出了苛刻的要求。 過去我們已經看到許多編程問題。 例如,有缺陷的數據庫表結構和索引設計可能會導致軟件體系結構缺陷和性能風險。 另一個例子是難以維護的混亂代碼結構。 此外,未經身份驗證的易受攻擊的代碼容易受到黑客的攻擊。 為了解決這類問題,我們在阿里巴巴為Java開發人員開發了本文檔。alibaba p3c 地址: https://github.com/alibaba/p3c
如何應用該指南來規范我們的項目代碼呢,我們可以在sonar中引入sonar-p3c這個開源插件,下面介紹下詳細步驟:
build sonar-p3c plugin插件:
sonar 7.4版本,一定要參照如下鏈接: https://github.com/rhinoceros/sonar-p3c-pmd/releases/tag/pmd-3.2.0-beta-with-p3c1.3.6-pmd6.10.0 , 100%無問題。
具體步驟
a.打包branch
git clone --single-branch --branch p3c-pmd-1.3.6-branch https://github.com/rhinoceros/p3c.git
clone下來之后,打包
mvn clean install -Dgpg.skip=true
b.打包plugin
git clone https://github.com/rhinoceros/sonar-p3c-pmd/tree/pmd-3.2.0-beta-with-p3c1.3.6-pmd6.10.0
clone下來之后,打包
mvn clean package
部署p3c插件
將上一步打好的jar包 ,放到sonar extensions/plugins下,重啟SonarQube
點擊Quality Proifles,並點擊Create
選擇Java並命名
點擊Active More
左側filter搜索p3c,並選擇Bulk Change,將p3c規則加入剛創建的profile中
回到Quality Profiles,設置剛剛的profile為默認
到此,p3c規則成功集成到Sonar中。現在測試下:
點擊Create new project
選擇Java,並生成token,生成mvn命令,Copy,直接在項目里執行即可
Idea中掃描會很快,Sonar中會一直顯示In Progress,需要等一會才有分析結果。成功執行后結果如下,說明p3c已經成功檢查我們的代碼
------------------------------------------ END ------------------------------------------------------
剛剛開始寫文章,還望老哥點贊推薦下
更多好文,關注作者:
本文由博客群發一文多發等運營工具平台 OpenWrite 發布