前言
SonarQube是一種自動代碼審查工具,用於檢測代碼中的錯誤,漏洞和代碼味道。它可以與您現有的工作流程集成,以實現跨項目分支和提取請求的連續代碼檢查,開源平台,用於管理源代碼的質量。同時 SonarQube 還對大量的持續集成工具提供了接口支持,可以很方便地在持續集成中使用 SonarQube。此外, SonarQube 的插件還可以對 Java 以外的其他編程語言提供支持,對國際化以及報告文檔化也有良好的支持。
2.SonarQube的使用范圍
通過插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十幾種編程語言的代碼質量管理與檢測,針對不同的編程語言其所提供的分析方式也有所不同: 對於所有支持的編程語言,SonarQube 都提供源了代碼的靜態分析功能; 對於某些特定的編程語言,SonarQube 提供了對編譯后代碼的靜態分析功能。
SonarQube 並不是簡單地將各種質量檢測工具的結果(例如 FindBugs,PMD 等)直接展現給客戶,而是通過不同的插件算法來對這些結果進行再加工,最終以量化的方式來衡量代碼質量,從而方便地對不同規模和種類的工程進行相應的代碼質量管理。 SonarQube 在進行代碼質量管理時,會從圖 1 所示的七個緯度來分析項目的質量。

必備環境:
1、docker
- docker-compose
- sonarqube
2、jenkins
3、git源碼地址
一、docker環境安裝
1、docker 安裝
linux下直接使用yum安裝,或者其它安裝方法:
yum -y install docker-ce
2、docker-compose 安裝
第一種:pip 安裝
1、首先檢查 pip 環境:pip -V
[root@iZbp19lugf22zbsubsf1y6Z ~]# pip -V pip 19.1.1 from /usr/lib/python2.7/site-packages/pip (python 2.7)
2、如未顯示 pip 版本號,自己解決。接下來輸入:pip install docker-compose
[root@iZbp19lugf22zbsubsf1y6Z easymock]# pip install docker-compose Looking in indexes: http://mirrors.cloud.aliyuncs.com/pypi/simple/ Requirement already satisfied: docker-compose in /root/python36/lib/python3.6/site-packages (1.25.1) Requirement already satisfied: cached-property<2,>=1.2.0 in /root/python36/lib/python3.6/site-packages (from docker-compose) (1.5.1) Requirement already satisfied: docopt<1,>=0.6.1 in /root/python36/lib/python3.6/site-packages (from docker-compose) (0.6.2) Collecting requests<3,>=2.20.0 Downloading http://mirrors.cloud.aliyuncs.com/pypi/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl (57kB) |????????????????????????????????| 61kB 23.4MB/s ...
3、驗證版本輸入:docker-compose version
[root@iZbp19lugf22zbsubsf1y6Z easymock]# docker-compose version docker-compose version 1.25.1, build a82fef0 docker-py version: 4.1.0 CPython version: 3.6.8 OpenSSL version: OpenSSL 1.0.2k-fips 26 Jan 2017
如提示沒有找到此命令,則需要添加軟連接:(注:是你自己的安裝路徑,別復制我的 )
ls -n /root/python3/bin/docker-compose /usr/bin/
第二種:下載安裝 docker-compose
1、運行命令,下載 Docker Compose:
curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2、加權限:
chmod +x /usr/local/bin/docker-compose
3、添加軟連接:
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
4、驗證版本輸入:docker-compose version
[root@iZbp19lugf22zbsubsf1y6Z easymock]# docker-compose version docker-compose version 1.25.1, build a82fef0 docker-py version: 4.1.0 CPython version: 3.6.8 OpenSSL version: OpenSSL 1.0.2k-fips 26 Jan 2017
3、sonarqube 安裝
1、系統配置,避免啟動問題
# 系統配置,避免啟動問題 echo "vm.max_map_count=262144" >> /etc/sysctl.conf
查看命令:sysctl -p
2、創建掛載目錄
# 創建目錄 mkdir -p ~/sonarqube && cd ~/sonarqube # 創建所有的sonarqube映射文件 mkdir -p ~/sonarqube/postgres && \ mkdir -p ~/sonarqube/data && \ mkdir -p ~/sonarqube/extensions && \ mkdir -p ~/sonarqube/logs && \ mkdir -p ~/sonarqube/conf # 創建數據庫掛載 mkdir -p ~/sonarqube/postgresql &&\ mkdir -p ~/sonarqube/datasql # 目錄設置為 777 權限,避免權限問題 chmod 777 ./*
3、創建 docker-compose.yml 文件
在sonarqube目錄下,將以下內如復制到yml文件:vi docker-compose.yml
version: '3'
services:
postgres:
image: postgres
restart: always
container_name: sonarqube_postgres
ports:
- 5432:5432
volumes:
- ~/sonarqube/postgresql/:/var/lib/postgresql
- ~/sonarqube/datasql/:/var/lib/postgresql/data
environment:
TZ: Asia/Shanghai
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonar
networks:
- sonar-network
sonar:
image: sonarqube
restart: always
container_name: sonarqube
depends_on:
- postgres
volumes:
- ~/sonarqube/extensions:/opt/sonarqube/extensions
- ~/sonarqube/logs:/opt/sonarqube/logs
- ~/sonarqube/data:/opt/sonarqube/data
- ~/sonarqube/conf:/opt/sonarqube/conf
ports:
- 9000:9000
environment:
SONARQUBE_JDBC_USERNAME: sonar
SONARQUBE_JDBC_PASSWORD: sonar
SONARQUBE_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
networks:
- sonar-network
networks:
sonar-network:
driver: bridge
4、docker-compose 用法
①啟動:docker-compose up -d
②停止:docker-compose down
[root@JenkinsGod sonarqube]# docker-compose up -d
Removing network sonarqube_sonar-network
Creating network "sonarqube_sonar-network" with driver "bridge"
Creating sonarqube_postgres ... done
Creating sonarqube ... done
5、瀏覽器訪問:ip+端口,如:192.168.11.111:9000
管理員賬號密碼都是:admin
6、sonarqube插件安裝
方法一(不推薦,好慢):在sonarqube web 上的 Marketplace 安裝。
方法二:下載jar包,丟到插件目錄下
這里有支持一部分語言,我們還可以漢化sonarqube,插件我直接分享在:
鏈接:https://pan.baidu.com/s/1wIMNDYE6JHxiKFeCycCkdQ
提取碼:gsxl
復制這段內容后打開百度網盤手機App,操作更方便哦
官方jar包下載地址:https://docs.sonarqube.org/latest/analysis/languages/java/
希望能有你所需要的。
7、ftp將jar上傳至服務器
上傳至該目錄:/extensions/downloads
如我的:
8、重啟:
①停止:docker-compose down
②重啟:docker-compose up -d
[root@JenkinsGod sonarqube]# docker-compose down Stopping sonarqube ... done Stopping sonarqube_postgres ... done Removing sonarqube ... done Removing sonarqube_postgres ... done Removing network sonarqube_sonar-network [root@JenkinsGod sonarqube]# docker-compose up -d Creating network "sonarqube_sonar-network" with driver "bridge" Creating sonarqube_postgres ... done Creating sonarqube ... done [root@JenkinsGod sonarqube]# [root@JenkinsGod sonarqube]#
二、jenkins 安裝與插件安裝
1、jenkins 安裝
詳細可以參考,https://www.cnblogs.com/gsxl/p/12129333.html
2、SonarQube Scanner 插件安裝
安裝后重啟jenkins
歡迎來大家QQ交流群一起學習:482713805