在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

这是我参与8月更文挑战的第7天,活动详情查看:8月更文挑战

部份参考自 黑马程序员Java教程自动化部署Jenkins从环境配置到项目开发

Sonar 集成

SonaQube简介

SonarQube是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。目前 支持java,编程语言难度排名C字符间距#,C/C++,Python,PL/SQL,Cobol,JavaSc编程语言难度排名rip,Groovy等二十几种编程语言的代码质量管理与检 测。

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

环境mysql安装配置教程

软件 版本
JDK 1.8
MySQL 5.7
SonarQube 7.7

安装MySQL

使用yum方式安装

  • centos7默认安装了MariaDB(MySQL的一个分支),所以所以执行yum install mysql以下命令只是更新Mariadb数据库
  • 我们先检查一下Mariadb
rpm -qa|grep mariadb
  • 然后删数据库系统工程师
rpm -e --nodeps 名字

源的安装

官网地址:dev.mysql.com/downloads/r…

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

  • 先看一下自己系统的版本mysql安装
cat /etc/redhat-release

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

  • 选择对应的版本进字符间距在哪里设置编程语言学哪个好下载
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

  • 安装
sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
  • 选择版本

    因为我们要安编程语言难度排名装的是MySQL5.7版本,而默认安装会选择当前最新的稳定版本

    所以先看一下当前yum库的所有MySQL版本

yum repolist all | grep mysql

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

  • 可见8.0版本的已启用,其他的都禁用了

    我们用命github永久回家地址令改编程语言怎么开发的一下

sudo yum-config-manager --disable mysql80-community
sudo yum-config-manager --enable mysql57-community
  • 再查看一下,可见gitee已成功修改默认安装版本

    在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

  • 查看当前启用的MySQL仓库

yum repolist enabled | grep mysql

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

本体安装和使用

  • 安装
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

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

  • 登录
mysql -uroot -p
  • 修改初始密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

如果出现ER数据库ROR 1819 (HY000): Your pas数据库系统概论第五版课后答案sword does not satisfy the current policy requirements的报告提示,是因为密码太简单了

MySQL默认mysql索引的密码策略是要包含数字、大小写字母及特殊字符,长度大于8

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

  • 允许root远程访问
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'
    

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

  • 设置开机启动
systemctl enable mysqld
systemctl daemon-reload
  • 创建so数据库系统的核心是nar数据库
create database sonar;

看一下成功没

show databases;

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

安装sonar

  • 选择版本官编程语言网下载地址
mkdir opt/sonar #创建目录
wget 对应版本的下载链接 #下载压缩包
unzip 名字.zip #解压
useradd 名字 #创建sonar用户,必须sonar用于启动,否则报错
chown -R 用户名. /opt/sonar #更改sonar目录及文件权限
  • 修改sonar配置文件ogit教程pt/sonarqube-版本号/conf/sonar.prMySQLoperties

    修改数据库连接用户名和密码,以及取消注释图中底行的连接地址

    Ps:sonar默认监听9000端口,如果9000端口被占用,需github永久回家地址要更改。

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

  • 启动sonar

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 #查看日志

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

  • 登录

    默认账户:admin/admin

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

  • 创建密钥

    输入密钥命,生成一串密钥,作为其他平台连接sonar的口令,要记下编程语言排行榜2022

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

在jenkins中集成

  • 运行逻辑:

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

安装插件

  • 安装Sona字符常量rQube Scanner插件

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

安装SonarQube Scanner

  • 在jenkins中自动安编程语言学哪个好装SonarQube Scanner

    【Manage Jenkins】->【Global Tool Configurationmysql密码忘记了怎么办】->【SonarQube Scanner】

    可以选择最新版本

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

添加凭证

  • 添加SonarQube凭证

    【Manage Jenkins】->【Manage Credentials】->【全局】->【添加凭证】

    选择【Secret test】类型,填入sonar的token密钥,写好凭据描述,点击确定

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

配置全局服务环境

  • 进行全局配置

    【Manage Jenkins】->【Configure System】->【SonarQube servers】编程语言排行榜2022

    填写名字、sonar的部署地址,选择上一步配好的证书

    点击应用,保存

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

在项目中添加So编程语言pythonnarQube代码审查

非流水线类型

首先演示的是直接在jenkins里输入

  • 在项目配置中,添加【Execute SonarQube Scanner】构建步骤

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

选择jdk1.8,然后在【Analysis properties】输入框中输入用于sonar分析的相关参数,模板已给出

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

模板:

# 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
  • 点击应用保存,然后构建

    在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

  • 构建完成后可在sonar中看到检测结构,成功

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

流水线类型
  • 在项目文数据库系统工程师件下创建sonar-project.properties文件,写入同上一步一样的配置参数信息,修改一下项目gitee

在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

  • 修改Jenkinsfile脚本,添加代码审查步骤

    在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

stage('check'){
  steps{
    script{
      scannerHome = tool 'SonarQube-Scanner' //引入工具,名字是之前在jenkins里安装scanner的名字
     }
    withSonarQubeEnv('SonarQube'){ //名字是之前在全局服务环境里配置的名字
      sh "${scannerHome}/bin/sonar-scanner" //引入sonar服务环境
     }
   }
}
  • 编程语言的种类送到gitlab编程语言排行榜2022,触发构建,成功

    在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

  • sonar也出了检测结果

    在jenkins中集成sonar进行代码审查,实现持续集成CI/CD

  • 成功

发表评论

提供最优质的资源集合

立即查看 了解详情