這是我參與8月更文挑戰的第7天,活動詳情查看:8月更文挑戰java
部份參考自 黑馬程序員Java教程自動化部署Jenkins從環境配置到項目開發node
SonarQube是一個用於管理代碼質量的開放平臺,能夠快速的定位代碼中潛在的或者明顯的錯誤。目前 支持java,C#,C/C++,Python,PL/SQL,Cobol,JavaScrip,Groovy等二十幾種編程語言的代碼質量管理與檢 測。mysql
軟件 | 版本 |
---|---|
JDK | 1.8 |
MySQL | 5.7 |
SonarQube | 7.7 |
使用yum方式安裝linux
yum install mysql
如下命令只是更新Mariadb數據庫 rpm -qa|grep mariadb
複製代碼
rpm -e --nodeps 名字
複製代碼
官網地址:dev.mysql.com/downloads/r…git
cat /etc/redhat-release
複製代碼
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
複製代碼
sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
複製代碼
選擇版本程序員
由於咱們要安裝的是MySQL5.7版本,而默認安裝會選擇當前最新的穩定版本web
因此先看一下當前yum庫的全部MySQL版本sql
yum repolist all | grep mysql
複製代碼
可見8.0版本的已啓用,其餘的都禁用了數據庫
咱們用命令改一下編程
sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community
複製代碼
再查看一下,可見已成功修改默認安裝版本
查看當前啓用的MySQL倉庫
yum repolist enabled | grep mysql
複製代碼
sudo yum install mysql-community-server
複製代碼
sudo systemctl start mysqld.service
複製代碼
sudo systemctl status mysqld.service
複製代碼
查看初始密碼
MySQL第一次啓動後會建立超級管理員帳號root@localhost
,初始密碼存儲在日誌文件中:
sudo grep 'temporary password' /var/log/mysqld.log
複製代碼
mysql -uroot -p
複製代碼
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
複製代碼
若是出現ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
的報告提示,是由於密碼太簡單了
MySQL默認的密碼策略是要包含數字、大小寫字母及特殊字符,長度大於8
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密碼' WITH GRANT OPTION;
複製代碼
而後刷新FLUSH PRIVILEGES;
設置編碼格式爲UTF-8
編輯/etc/my.cnf,[mysqld]節點增長如下代碼:
character_set_server=utf8
init-connect='SET NAMES utf8'
複製代碼
systemctl enable mysqld
systemctl daemon-reload
複製代碼
create database sonar;
複製代碼
看一下成功沒
show databases;
複製代碼
mkdir opt/sonar #建立目錄
wget 對應版本的下載連接 #下載壓縮包
unzip 名字.zip #解壓
useradd 名字 #建立sonar用戶,必須sonar用於啓動,不然報錯
chown -R 用戶名. /opt/sonar #更改sonar目錄及文件權限
複製代碼
修改sonar配置文件opt/sonarqube-版本號/conf/sonar.properties
修改數據庫鏈接用戶名和密碼,以及取消註釋圖中底行的鏈接地址
Ps:sonar默認監聽9000端口,若是9000端口被佔用,須要更改。
su 用戶名 ./bin/linux-x86-64/sonar.sh start #啓動
su 用戶名 ./bin/linux-x86-64/sonar.sh status #查看狀態
su 用戶名 ./bin/linux-x86-64/sonar.sh stop #中止
tail -f logs/sonar.log #查看日誌
複製代碼
登陸
默認帳戶:admin/admin
建立密鑰
輸入密鑰命,生成一串密鑰,做爲其餘平臺鏈接sonar的口令,要記下來
在jenkins中自動安裝SonarQube Scanner
【Manage Jenkins】->【Global Tool Configuration】->【SonarQube Scanner】
能夠選擇最新版本
添加SonarQube憑證
【Manage Jenkins】->【Manage Credentials】->【全局】->【添加憑證】
選擇【Secret test】類型,填入sonar的token密鑰,寫好憑據描述,點擊肯定
進行全局配置
【Manage Jenkins】->【Configure System】->【SonarQube servers】
填寫名字、sonar的部署地址,選擇上一步配好的證書
點擊應用,保存
首先演示的是直接在jenkins裏輸入
選擇jdk1.8,而後在【Analysis properties】輸入框中輸入用於sonar分析的相關參數,模板已給出
模板:
# must be unique in a given SonarQube instance
# sonar中項目的惟一鍵值
sonar.projectKey=web_demo
# this is the name and version displayed in the SonarQube UI.
sonar.projectName=web_demo
sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Replace "" by "/" on
Windows.
# This property is optional if sonar.modules is set.
sonar.sources=. #掃描文件的路徑
sonar.exclusions=**/test/**,**/target/** #不掃描的文件
sonar.java.source=1.8
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8
複製代碼
點擊應用保存,而後構建
構建完成後可在sonar中看到檢測結構,成功
sonar-project.properties
文件,寫入同上一步同樣的配置參數信息,修改一下項目名修改Jenkinsfile腳本,添加代碼審查步驟
stage('check'){
steps{
script{
scannerHome = tool 'SonarQube-Scanner' //引入工具,名字是以前在jenkins裏安裝scanner的名字
}
withSonarQubeEnv('SonarQube'){ //名字是以前在全局服務環境裏配置的名字
sh "${scannerHome}/bin/sonar-scanner" //引入sonar服務環境
}
}
}
複製代碼
推送到gitlab,觸發構建,成功
sonar也出了檢測結果