这是我参与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也出了检测结果