前景
靜態(tài)代碼掃描是CI/CD中重要的一環(huán),可以在代碼提交到代碼倉庫之后,在CI/CD流程中加入代碼掃描步驟,從而及時地對代碼進行質(zhì)量的檢查。這可以有效地降低后期維護成本,優(yōu)化產(chǎn)品質(zhì)量,提高產(chǎn)品交付速度。同時,靜態(tài)代碼掃描還可以將代碼問題自動通知給開發(fā)人員,使得問題得到及時發(fā)現(xiàn)和解決。
通俗地說,通過將靜態(tài)代碼分析融入到CI/CD流程中,可以進一步提高軟件開發(fā)過程的效率和質(zhì)量,幫助團隊快速交付高質(zhì)量的產(chǎn)品。
靜態(tài)代碼分析
靜態(tài)代碼分析是指無需運行被測代碼,僅通過分析或檢查源程序的語法、結(jié)構(gòu)、過程、接口等來檢查程序的正確性,找出代碼隱藏的錯誤和缺陷,如:參數(shù)不匹配、有歧義的嵌套語句、錯誤的遞歸、非法計算、可能出現(xiàn)的空指針引用等等。
作用一個
- 快速定位代碼隱藏錯誤和缺陷;
- 提高軟件可靠性并節(jié)省軟件開發(fā)和測試成本;
java代碼分析
python代碼分析
?
Sonarqube介紹
是一款開源的代碼質(zhì)量管理平臺,用于檢測代碼中的錯誤,漏洞和代碼規(guī)范,通過插件的機制,可以基于現(xiàn)有的Gitlab、Jenkins 集成、以便在項目拉取后進行連續(xù)的代碼檢查。旨在提供一個完整的代碼質(zhì)量管理解決方案。
優(yōu)勢
- 支持眾多計算機編程語言
- 通過插件機制能集成IDE、Jenkins、Git等
- 內(nèi)置大量常用代碼檢查規(guī)則
- 支持定制開發(fā)規(guī)則
- 可視化界面
- 支持從可靠性、安全性、可維護性、覆蓋率、重復(fù)率等方面分析項目
框架
- 數(shù)據(jù)庫層:Sonarqube使用一個數(shù)據(jù)庫來存儲所有的代碼質(zhì)量數(shù)據(jù)。
- 應(yīng)用程序?qū)樱篠onarqube的應(yīng)用程序?qū)影ㄒ幌盗谢贘ava的Web應(yīng)用程序,這些應(yīng)用程序負責收集數(shù)據(jù)、分析代碼和生成報告等任務(wù)。
- 插件層:Sonarqube的插件層是一個可擴展的架構(gòu),它允許用戶安裝和使用各種不同的插件來增強Sonarqube的功能和靈活性。
- 數(shù)據(jù)采集層:Sonarqube支持多種不同的代碼倉庫和版本控制系統(tǒng),包括SVN、Git、Mercurial和ClearCase等。使用這些數(shù)據(jù)采集插件,Sonarqube可以輕松地從不同的代碼庫中收集數(shù)據(jù)。
工作原理
- 代碼收集:首先,Sonarqube向代碼倉庫請求代碼,并將代碼下載到本地。
- 代碼分析:然后,Sonarqube使用其內(nèi)置的代碼分析器分析代碼并生成有關(guān)代碼質(zhì)量的重要信息,例如代碼復(fù)雜性、代碼重復(fù)性、代碼測試覆蓋率等。
- 數(shù)據(jù)存儲:Sonarqube將收集的數(shù)據(jù)存儲在其數(shù)據(jù)庫中,以供后續(xù)使用。
- 報告生成:Sonarqube使用其內(nèi)置的報告生成器生成各種數(shù)據(jù)可視化圖表、報告和警告,并將其呈現(xiàn)給用戶。
- 反饋和持續(xù)改進:用戶可以使用Sonarqube提供的反饋功能來共享意見和建議,以改善代碼質(zhì)量。此外,Sonarqube還提供了持續(xù)集成和持續(xù)交付等功能,以幫助團隊在代碼開發(fā)過程中不斷改進代碼質(zhì)量。
sonarqube7.8版本支持MS SQLserver、Oracle、Postgresql、MySQL四種數(shù)據(jù)庫,但是從7.8版本之后,sonarqube不再支持MySQL數(shù)據(jù)庫,
部署?
?環(huán)境要求
軟件 |
版本 |
jdk |
17 |
postgersql |
12.1 |
sonarqube |
10.1 |
下載地址
Code Quality, Security & Static Analysis Tool with SonarQube | Sonar
?
?本次選擇10.1社區(qū)版本安裝(點擊下載后,先進行后續(xù)操作,等下載完成后上傳至linux服務(wù)器)
?
查看官方文檔
最小配置要求
?jdk版本
?
?postgresql版本
安裝
安裝docker
yum install docker
docker version
#啟動docker服務(wù)
systemctl start docker
systemctl status docker
systemctl enable docker
?postgresql安裝
#此處直接使用docker安裝
#默認用戶名是 postgres ,密碼是123456
docker run --name postgres -v dv_pgdata:/var/lib/postgresql/data --restart=always -e POSTGRES_PASSWORD=123456 -p 5432:5432 -d postgres:12.1
#查看服務(wù)
docker ps -a
安裝jdk17
(請參考如下鏈接)
Linux安裝java17-CSDN博客
?在PostgreSQL中新建sonar數(shù)據(jù)庫:
docker exec -it postgres bash
su postgres
psql -U postgres -W
123456
CREATE DATABASE sonar;
?上傳下載完的sonarqube安裝包到服務(wù)器
?解壓
unzip sonarqube-10.1.0.73491.zip
mv sonarqube-10.1.0.73491 sonarqube-10.1.0
創(chuàng)建用戶
# 創(chuàng)建sonar用戶,sonar不能用root啟動,否則報錯
useradd sonar
#設(shè)置密碼
passwd sonar
?設(shè)置權(quán)限
#(文件目錄根據(jù)自己實際進行修改)
chown -R sonar /app/sonar/sonarqube-10.1.0
修改配置文件
vim /app/sonar/sonarqube-10.1.0/conf/sonar.properties
sonar.jdbc.username=postgres
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonar
修改JVM參數(shù)(sonar版本要求)
-Xmx 和 -Xms 是 Java 虛擬機(JVM)的參數(shù),用于設(shè)置 Java 程序的堆內(nèi)存的最大值(maximum heap size)和初始值(initial heap size)。
-Xmx 參數(shù)用于設(shè)置 Java 程序的堆內(nèi)存的最大值。
-Xms 參數(shù)用于設(shè)置 Java 程序的堆內(nèi)存的初始值
sonar.web.javaOpts=-Xmx2g -Xms1g -XX:+HeapDumpOnOutOfMemoryError
?sonar默認自帶了ES,所以需要修改配置,防止啟動報錯:
vim /etc/security/limits.conf
# 追加內(nèi)容
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
vim /etc/security/limits.d/90-nproc.conf
# 追加內(nèi)容
* soft nproc 4096
vim /etc/sysctl.conf
# 追加內(nèi)容
vm.max_map_count=655360
啟動sonar
(sonar的默認端口是9000)
切換至sonar用戶
su sonar
cd /app/sonar/sonarqube-10.1.0/bin/linux-x86-64
啟動
sh sonar.sh start
停止
sh sonar.sh stop
查看日志
tail -f /app/sonar/sonarqube-10.1.0/logs/sonar.log
登錄頁面
默認用戶名admin密碼admin?
修改密碼
文章來源:http://www.zghlxwxcb.cn/news/detail-848150.html
可以使用啦??。?!
文章來源地址http://www.zghlxwxcb.cn/news/detail-848150.html
到了這里,關(guān)于sonar搭建(linux系統(tǒng))的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!