近期测试团队使用sonarqube进行代码的风险检测,通过Jenkins定时跑任务的方式,为了更好地及时相应代码的Bugs以及漏洞的修改,本文主要介绍在vscode中如果通过插件配置及时响应sonarqube线上代码的问题
前提:
- 团队中or个人已经部署了sonarqube,启动sonar server服务。记住sonar server服务中配置好的
projectKey,后续会用到 - 本文主要使用的是vscode的
SonarQube support for Visual Studio Code插件
0. 插件安装
安装VSCode的SonarQube support for Visual Studio Code插件,如下图找到插件

插件下载完成后输入Ctrl + P 打开Vscode命令搜索功能,输入sonar模糊查询到结果如下

1. 配置
sonarLint 全局配置
选择
Create global config with credentials to servers, 弹出并打开global.json文件
global.json文件打开如下,即sonarLint的全局配置文件1
2
3
4
5
6
7
8
9
10
11
12
13
14{
"servers": [
{
"id": "localhost",
"url": "http://localhost:9000",
"token": "YOUR_SONARQUBE_AUTH_TOKEN"
},
{
"id": "my-company-server",
"url": "http://my-company.com",
"token": "YOUR_SONARQUBE_AUTH_TOKEN"
}
]
}接下来只需要自定义上图对应字段, servers两个配置项只需定义一个即可
id: 与具体工程关联的唯一标识符,在具体工程配置文件中会用到
url: sonar server 所在的地址
token: 能进入 sonar server 的用于验证用户身份的一串字符,下图是通过sonarqube如何生成
token值
sonarLint 工程配置文件
重复以上步骤
Ctrl+P, 搜索>sonar,
选择Create local sonarlinet config with project binding,弹出并打开sonarlint.json文件sonarlint.json文件打开如下,即sonarLint的工程配置文件1
2
3
4
5{
"$schema": "https://raw.githubusercontent.com/silverbulleters/sonarqube-inject-vsc/master/schemas/sonarlint.json",
"serverId": "my-company-server",
"projectKey": "my-project"
}接下来自定义上图对应字段
serverId:即配置全局文件时的 id
projectKey:sonar server 上的工程唯一标识,即上文所说的server中每个任务的
projectKey,如下图所示,在jenkins项目配置的例子
至此配置完成,vscode编辑器能直接提醒出sonarqube上的报错信息,如图所示sonarqube的报错信息

vscode上代码信息自动提示

其他sonarlint相关命令,即
Ctrl+P>>soanr后其余指令Analyze current file:重新分析当前文件Analyze current project:重新分析当前工程所有文件Update bindings to SonarQube server:更新来自 Sonar Server 的规则