環(huán)境準備
內(nèi)置數(shù)據(jù)庫
Sonar安裝成功后屹逛,默認內(nèi)置H2數(shù)據(jù)庫,用于記錄單次的掃描結果汛骂,對同一個project重復掃碼罕模,會覆蓋之前的掃描記錄,所以H2 數(shù)據(jù)庫只應用于測試帘瞭,不可以用于生產(chǎn)環(huán)境,那如果你是想玩玩淑掌,不想長期掃描你的項目,可以不必配置數(shù)據(jù)庫
自定義數(shù)據(jù)庫:
- 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社區(qū)版
https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.4.zip
我之前是用最新的8.2版本祸轮,不過問題很多兽埃,而且評價說最新的不是很穩(wěn)定,不支持mysql适袜,最后使用的7.4版本柄错,
官網(wǎng)下載比較慢,大家如果無法下載可以留言回復我苦酱,或者關注文末二維碼私信我售貌。
2.安裝JDK:
我安裝的JDK11(1.8版本無法安裝最新的sonarqube 8.2,7.x是可以的疫萤,大家選擇時候需要注意)
如果無法找到下載地址颂跨,私信我。
3.選擇數(shù)據(jù)庫
4.配置:
-
安裝完畢扯饶,打開此目錄恒削,運行StartSonar.bat
2.啟動瀏覽器池颈,訪問http://localhost:9000 , 如出現(xiàn)下圖則表示安裝成功。
3.配置連接數(shù)據(jù)庫 :
打開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登陸系統(tǒng)琢歇。配置數(shù)據(jù)庫之后,會初始化表信息梦鉴,耐心等待一段時間李茫。
5.Sonar中創(chuàng)建project ,并配置命令
5.在IDEA中進到要掃描的項目根目錄尚揣,執(zhí)行:
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編程團隊對項目之間的代碼質量提出了苛刻的要求塔次。 過去我們已經(jīng)看到許多編程問題方篮。 例如,有缺陷的數(shù)據(jù)庫表結構和索引設計可能會導致軟件體系結構缺陷和性能風險励负。 另一個例子是難以維護的混亂代碼結構藕溅。 此外,未經(jīng)身份驗證的易受攻擊的代碼容易受到黑客的攻擊继榆。 為了解決這類問題巾表,我們在阿里巴巴為Java開發(fā)人員開發(fā)了本文檔。alibaba p3c 地址: https://github.com/alibaba/p3c
如何應用該指南來規(guī)范我們的項目代碼呢略吨,我們可以在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規(guī)則加入剛創(chuàng)建的profile中
回到Quality Profiles,設置剛剛的profile為默認
到此河质,p3c規(guī)則成功集成到Sonar中〖讲眩現(xiàn)在測試下:
點擊Create new project
選擇Java震叙,并生成token,生成mvn命令云头,Copy捐友,直接在項目里執(zhí)行即可
Idea中掃描會很快,Sonar中會一直顯示In Progress溃槐,需要等一會才有分析結果匣砖。成功執(zhí)行后結果如下,說明p3c已經(jīng)成功檢查我們的代碼
------------------------------------------ END ------------------------------------------------------
** 剛剛開始寫文章,還望老哥點贊推薦下昏滴。**
更多好文猴鲫,關注作者:
本文由博客群發(fā)一文多發(fā)等運營工具平臺 OpenWrite 發(fā)布