近期测试团队使用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 的规则