SonarQube-质量检测

代码质量采用sonarqube进行源码的扫描,并生成检测报告,如下:

image-20250222180945910

这里主要关注Bugs漏洞复审热点几个指标需要进行代码检查确认是否需要修复。

Bugs:代码写法存在bug,需要检查确认是否修复

漏洞:代码中的写法存在漏洞,需要检查确认是否修复

安全热点:需要人为去识别是否为bug,需要检查确认是否修复

异味:一般可以不关注,有时间也可以查看一下给出的优化建议

覆盖率:这里不做处理,这里指单元测试的覆盖,我们一般都没写。

重复:代码块中的重复,有时间可以优化下。

Maven项目

手工执行检测

在本地maven的setting.xml文件添加一个profile

<!-- setting.xml文件添加sonarqube -->
<profile>
    <id>sonar</id>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
		<sonar.token>squ_d0776e92c22dfeb1f724a26ae00ebc235589a8c8</sonar.token>
        <sonar.host.url>http://172.16.102.52:9000/</sonar.host.url>
    </properties>
</profile>

<activeProfiles>
    <activeProfile>nexusRepository</activeProfile>
    <activeProfile>sonar</activeProfile>
</activeProfiles>
# 在应用中开个终端执行下列命令(执行完后,可以在网页上查看检测的报告,根据检测的示例进行修复后再进行重新检测 )
mvn sonar:sonar

流水线构建配置

// Jenkins流水线配置文件添加一个步骤(在拉取代码后就可以执行检测)
stage('sonarqube-质量检测') {
    steps {
    sh '/var/jenkins_home/apache-maven-3.8.6/bin/mvn sonar:sonar -Dsonar.java.binaries=target/sonar'
 }
}

Web项目

web项目在本地检测需要下载SonarScanner

手工执行检测

SonarScanner 下载:https://docs.sonarsource.com/sonarqube/latest/analyzing-source-code/scanners/sonarscanner/在新窗口打开

下载解压:D:\software\sonar-scanner (目录自定选择)

# 在前端项目根目录执行
D:\software\sonar-scanner\bin\sonar-scanner.bat -D"sonar.projectKey=dmm-web" -D"sonar.sources=." -D"sonar.host.url=http://172.16.102.52:9000/" -D"sonar.token=squ_d0776e92c22dfeb1f724a26ae00ebc235589a8c8"

sonar.projectKey:dmm-web (应用ID,自行修改)

sonar.sources:. (.表示当前命令执行时扫描的目录)

sonar.host.url:http://172.16.102.52:9000/ (SonarQube服务地址,默认)

sonar.login:squ_d0776e92c22dfeb1f724a26ae00ebc235589a8c8(访问令牌,默认)

sonar.token:squ_d0776e92c22dfeb1f724a26ae00ebc235589a8c8(在sonarqube:10.0及之后版本该属性调整为sonar.login-->sonar.token

流水线构建配置

// Jenkins流水线配置文件添加一个步骤(在拉取代码后就可以执行检测)
stage('sonarqube-质量检测') {
	steps {
		script{
			SCANNER_HOME = tool 'sq-scanner'
		}
		withSonarQubeEnv('sonarqube') {
		sh"""
		${SCANNER_HOME}/bin/sonar-scanner \
		-Dsonar.projectKey=${JOB_BASE_NAME} \
		-Dsonar.sources=. \
		-Dsonar.host.url=http://172.16.102.52:9000/ \
		-Dsonar.token=squ_d0776e92c22dfeb1f724a26ae00ebc235589a8c8
		"""
		}
	}
}

报告查看

SonarQube :http://172.16.102.52:9000/在新窗口打开

访问账号/密码:说明使用的项目,申请创建相关账号

上次更新:
编辑者: 李贤伟