其他分享
首页 > 其他分享> > 7. jenkins的代码审查

7. jenkins的代码审查

作者:互联网

sonar基本使用

1,sonar安装和配置

SonarQube是一个用于管理代码质量的开放平台,可以快速的定位代码中潜在的或者明显的错误。目前 支持java,C#,C/C++,Python,PL/SQL,Cobol,JavaScrip,Groovy等二十几种编程语言的代码质量管理与检 测。
官网:https://www.sonarqube.org/

安装SonarQube

1)安装MySQL(已完成)

2)安装SonarQube
在MySQL创建sonar数据库

下载sonar压缩包:
https://www.sonarqube.org/downloads/
解压sonar,并设置权限

yum install unzip
unzip sonarqube-6.7.4.zip 解压
mkdir /opt/sonar 创建目录
mv sonarqube-6.7.4/* /opt/sonar 移动文件
useradd sonar 创建sonar用户,必须sonar用于启动,否则报错
chown -R sonar. /opt/sonar 更改sonar目录及文件权限修改sonar配置文件

vi /opt/sonarqube-6.7.4/conf/sonar.properties
内容如下:

sonar.jdbc.username=root
sonar.jdbc.password=Root@123
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs= maxPerformance&useSSL=false

注意:sonar默认监听9000端口,如果9000端口被占用,需要更改。 启动sonar
cd /opt/sonarqube-6.7.4

su sonar ./bin/linux-x86-64/sonar.sh start 启动
su sonar ./bin/linux-x86-64/sonar.sh status 查看状态
su sonar ./bin/linux-x86-64/sonar.sh stop 停止

tail -f logs/sonar.logs 查看日志访问sonar http://192.168.66.101:9000

image-20211212165547756

默认账户:admin/admin 创建token

image-20211212165622706

2. jenkins配置sonar

安装SonarQube Scanner插件

image-20211212165852279

添加SonarQube凭证

image-20211212165921164

Jenkins进行SonarQube配置
Manage Jenkins->Configure System->SonarQube servers

image-20211212170009841

Manage Jenkins->Global Tool Configuration

image-20211212170113851

SonaQube关闭审查结果上传到SCM功能

image-20211212170146989

3. Jenkins+SonarQube代码审查(2) - 实现代码审查

image-20211212165830204

非流水线项目

项目风格为freestyle或者maven项目,在增加构建步骤选择sonar Scanner,添加脚本

# must be unique in a given SonarQube instance
sonar.projectKey=web_demo_freestyle
# this is the name and version displayed in theSonarQube UI. Was mandatory prior to SonarQube 6.1.
sonar.projectName=web_demo_freestyle
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 
sonar.java.target=1.8

# Encoding of the source code. Default is default system encoding 
sonar.sourceEncoding=UTF-8

image-20211212164426162

执行构建,后访问sonar webui

image-20211212164748492

流水线项目

区别在于,构建脚本在项目中,采用pipeline语法构建的。

image-20211212164911064

在项目添加SonaQube代码审查(流水线项目)

1)项目根目录下,创建sonar-project.properties文件

2)修改Jenkinsfile,加入SonarQube代码审查阶段

pipeline { agent any


stages {
stage('拉取代码') { steps {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '68f2087f-a034-4d39-a9ff-1f776dd3dfa8', url: 'git@192.168.66.100:itheima_group/web_demo.git']]])
}
}
stage('编译构建') { steps {
sh label: '', script: 'mvn clean package'
}
}
stage('SonarQube代码审查') { steps{
script {
scannerHome = tool 'sonarqube-scanner'
}
withSonarQubeEnv('sonarqube6.7.4') {
sh "${scannerHome}/bin/sonar-scanner"
}
}
}
stage('项目部署') { steps {
deploy adapters: [tomcat8(credentialsId: 'afc43e5e-4a4e-4de6-984f- b1d5a254e434', path: '', url: 'http://192.168.66.102:8080')], contextPath: null, war: 'target/*.war'
}
}
}
post {
always {
emailext(
subject: '构建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} -
${BUILD_STATUS}!',
body: '${FILE,path="email.html"}', to: '1014671449@qq.com'
)
}
}
}

1) 到SonarQube的UI界面查看审查结果

解决新版sonar-java插件需要配置sonar.java.binaries参数的问题

https://blog.csdn.net/u013111003/article/details/79927668

标签:opt,审查,sonarqube,代码,SonarQube,sonar,jenkins
来源: https://www.cnblogs.com/nwnusun/p/16458920.html