天天看點

centos7搭建sonarqube環境+jenkins部署全流程

一、簡介

sonarqube是一個用于代碼品質管理的開源平台,用于管理源代碼的品質

不遵循代碼标準

sonar可以通過PMD,CheckStyle,Findbugs等等代碼規則檢測工具規範代碼編寫。

潛在的缺陷

sonar可以通過PMD,CheckStyle,Findbugs等等代碼規則檢測工具檢 測出潛在的缺陷。

糟糕的複雜度分布

檔案、類、方法等,如果複雜度過高将難以改變,這會使得開發人員 難以了解它們, 且如果沒有自動化的單元測試,對于程式中的任何元件的改變都将可能導緻需要全面的回歸測試。

重複

顯然程式中包含大量複制粘貼的代碼是品質低下的,sonar可以展示 源碼中重複嚴重的地方。

注釋不足或者過多

沒有注釋将使代碼可讀性變差,特别是當不可避免地出現人員變動 時,程式的可讀性将大幅下降 而過多的注釋又會使得開發人員将精力過多地花費在閱讀注釋上,亦違背初衷。

缺乏單元測試

sonar可以很友善地統計并展示單元測試覆寫率。

糟糕的設計

通過sonar可以找出循環,展示包與包、類與類之間的互相依賴關系,可以檢測自定義的架構規則 通過sonar可以管理第三方的jar包,可以利用LCOM4檢測單個任務規則的應用情況, 檢測藕合。

二、sonarqube環境搭建

1.下載下傳jdk安裝包,因為sonarqube環境是依賴JVM運作的,是以需要安裝jdk

下載下傳jdk11并做環境配置

vim /etc/profile

最後一行添加:

export PATH=/usr/local/java/bin/:$PATH

2.下載下傳sonarqube安裝包:

官網:https://www.sonarqube.org/

centos7搭建sonarqube環境+jenkins部署全流程
centos7搭建sonarqube環境+jenkins部署全流程

 下載下傳相應的版本,我這裡使用SonarQube 8.2社群版本

centos7搭建sonarqube環境+jenkins部署全流程

3.使用wincp工具将sonarqube安裝包傳輸到centos7中

4.安裝解壓和壓縮工具

yum install -y unzip zip

解壓sonarqube-8.2.0.32929.zip到/opt下改名為sonarqube

unzip sonarqube-8.2.0.32929.zip

mv sonarqube-8.2.0.32929 /opt/sonarqube

centos7搭建sonarqube環境+jenkins部署全流程

5.sonar-pdf-plugin插件打包

 sonar-pdf-plugin插件源碼   https://gitee.com/GeoStarMobile/sonar-pdf-plugin

下載下傳sonar-pdf-plugin的源碼(需要做部分修改),IDEA打包生成jar包,然後拷貝到 /opt/sonarqube/extensions/plugins目錄下。

centos7搭建sonarqube環境+jenkins部署全流程

 6.配置sonarqube環境變量

vim /etc/profile

export SONAR_HOME=/opt/sonarqube

export PATH=$PATH:$SNOAR_HOME/bin/linux-x86-64

source /etc/profile

7.賦予執行權限,解決後續權限不足的問題

chmod 777 sonarqube

8.建立普通使用者權限(root使用者不能啟動es)

adduser sonaruser

passwd sonaruser

9.給普通使用者賦sonar執行權限,以及Java執行權限

chown -R sonaruser:sonaruser /opt/sonarqube

chown -R sonaruser:sonaruser /usr/local/java

10.切換普通使用者

su sonaruser

11.啟動服務

/opt/sonarqube/bin/linux-x86-64/sonar.sh start 

tail -f /opt/sonarqube/logs/sonar.log

centos7搭建sonarqube環境+jenkins部署全流程

 12.浏覽器再次輸入http://192.168.4.239:9000(預設 admin/admin)

centos7搭建sonarqube環境+jenkins部署全流程

 sonar服務啟動會啟動sonar服務,elasticsearch服務、MySQL服務

   ps -ef | grep elasticsearch

   ps -ef | grep soanr

   ps -ef | grep mysqld

可通過以上指令檢視服務程序

13.安裝中文插件

centos7搭建sonarqube環境+jenkins部署全流程

三、jenkins內建sonarqube

1.安裝插件SonarQube Scanner

centos7搭建sonarqube環境+jenkins部署全流程

2.sonar生成令牌,jenkins的憑據需要用到

centos7搭建sonarqube環境+jenkins部署全流程
centos7搭建sonarqube環境+jenkins部署全流程

 3.jenkins系統配置中添加SonarQube servers的配置資訊

centos7搭建sonarqube環境+jenkins部署全流程

 4.全局配置工具中安裝SonarQube Scanner

centos7搭建sonarqube環境+jenkins部署全流程

5.建立sonarqube項目test

centos7搭建sonarqube環境+jenkins部署全流程

6.jenkins建立***建構項目

centos7搭建sonarqube環境+jenkins部署全流程

 7.更改jenkins配置檔案中.m2目錄下 settings.xml和代碼檔案中pom.xml

settings.xml加入如下内容

centos7搭建sonarqube環境+jenkins部署全流程

 pom.xml加入如下内容:

centos7搭建sonarqube環境+jenkins部署全流程

 8.去jenkins部署項目,部署完畢檢視sonarqube檢測情況

centos7搭建sonarqube環境+jenkins部署全流程
centos7搭建sonarqube環境+jenkins部署全流程