**! 注意此文档为测试文档,让大家提前使用并熟悉下代码检查的工作原理,后续会集成到jenkins中 **

1. 背景说明

代码检查是项目开发过程中的重要组成,及时的代码检查可以帮助规避掉多数的简单漏洞和潜在bug。本文旨在讲解如何使用sonar的代码检查工具进行代码检查。支持语言:html js java 等

2. maven操作演示

2.1 在maven的settings.xml中做如下配置, pluginGroups在settings标签下:

<pluginGroups>
    <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>

2.2 profile中加入sonar的环境配置:

<profile>
    <id>sonar</id>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
        <sonar.host.url>
			<!-- sonar服务地址 -->
            http://10.20.250.23:31821
        </sonar.host.url>
        <sonar.login>admin</sonar.login>
        <sonar.password>admin</sonar.password>
        <sonar.inclusions>**/*.java,**/*.xml</sonar.inclusions>
    </properties>
</profile>

2.3 激活sonar环境配置

<activeProfiles>
    <activeProfile>sonar</activeProfile>
</activeProfiles>

2.4 执行代码检查命令

mvn clean install sonar:sonar

2.5 登录sonar web查看代码检查情况

image-20201117141756400

3. 前端扫描操作演示

前端需要下载扫描器使用,参见链接下载:

http://10.20.250.23:31821/documentation/analysis/scan/sonarscanner/

windows版本:

第一步: 下载windows scanner客户端,见附件:sonar-scanner-cli-4.5.0.2216-windows.zip

第二步: 解压并配置环境变量

第三步:重启终端

mac版本:

第一步: 下载windows scanner客户端,见附件:sonar-scanner-cli-4.5.0.2216-macosx.zip

第二步: 解压并配置环境变量

第三步:重启终端

linux版本:

第一步: 下载windows scanner客户端,见附件:sonar-scanner-cli-4.5.0.2216-linux.zip

第二步: 解压并配置环境变量

第三步:重启终端

共同

第四步: 配置服务端地址

${sonar-scanner_home}/conf/sonar-scanner.properties

sonar.host.url=http://10.20.250.23:31821  ##服务器地址
sonar.projectKey=app-manage-pages 			#子系统名称
sonar.login=e59068d2502a086bccb6615a726c69494f512db4 ##密钥,各子系统使用各自独立的key,见密钥列表
sonar.sourceEncoding=UTF-8
sonar.sources=src							##检测目录
sonar.language=js							##检测预言

第5步: 执行检查命令

cd ${project_home}
sonar-scanner

第6步: 登录web页面查看扫描结果

image-20201117150852097

附录: 密钥列表

app-manage-pages: e59068d2502a086bccb6615a726c69494f512db4
resource-manage-pages:  6f05afe3e003d03d38716bd7b430c72bc7a17046
data-monitor: 862c45ff5a26cf9de9f671dca1112d4c36a48d61
data-label: 61602ff745d2795b390e38ddcb6dd6ba7b693e78
data-stand: 6d802700a5cf05396c07443ee7deb2388b752350
app-monitor: b36f8c09ed7bb28e75458ca39d3ca4b7b39eac26
data-warehouse-pages: 9553f682d81fa1dc5c178e1d6862db1e590e95db
data-analysis-pages: 390162006c90ed0fac3c5ed8827a16a0118c5530