最近公司让整理一下 Sonar 的rule,由于第一次接触,所以也是从无到有慢慢了解,过程中遇到一个点: 平台的sonar rule change 完之后, 你们跟你本地vscode 关联起来,这样可以更好的根据公司sonar平台的配置规则去fix代码,下面是我做的一些心得,当做笔记写了写来。
我现在需要把VSCode里安装的SonarQube插件和服务器上的SonarQube关联起来。首先,我可能需要在VSCode里安装SonarLint或者SonarQube插件对吧?我已经安装了SonarQube插件,所以下一步应该是配置这个插件连接到服务器。
我可能需要生成一个用户令牌。在服务器端,用户需要登录到SonarQube的网页,进入自己的账户设置,那里有一个安全或者令牌的选项,生成一个新的令牌。这个令牌是用来在VSCode里认证的,避免直接用密码。
然后回到VSCode,打开设置。在SonarQube插件的配置里,应该有一个服务器地址的选项,需要输入服务器的URL,比如sonarqube.example.com:9000。接下来可能需要填写令牌或者用户名密码。如果是用令牌的话,用户名字段可能留空或者随便填,密码填令牌?
或者,插件可能有不同的配置方式,比如在VSCode的设置里,找到SonarQube的扩展设置,添加服务器配置,包括名称、URL和令牌。可能需要点击"添加"按钮,然后输入这些信息。
另外,还要确保VSCode能访问服务器的地址,可能需要检查防火墙或者网络设置,确保端口9000是开放的。如果服务器在本地网络,可能没问题,如果是远程的,可能需要配置正确。
然后,需要绑定项目。在项目目录下,有没有sonar-project.properties文件?或者是否需要在VSCode里配置项目键、名称等信息,这样插件才能知道将分析结果发送到哪个服务器项目。
还有需要注意SonarQube服务器的版本是否和插件兼容。如果版本差异太大,可能会有问题。需要检查插件支持的SonarQube版本,并确认服务器版本符合要求。
如果连接不上,可能需要检查日志或者错误信息。VSCode的输出窗口里可能有插件的日志,看看是否有连接超时、认证失败之类的提示。根据这些错误信息再调整配置。
另外,可能需要配置环境变量,比如在系统里设置SONAR_TOKEN或者类似的变量,但可能插件直接通过设置界面处理了这些。
总的来说,步骤大概是:安装插件,生成服务器令牌,配置插件使用服务器地址和令牌,检查连接,然后配置项目绑定。如果中间有错误,需要根据提示排查网络、认证或者配置是否正确。
要将VSCode的SonarQube插件与服务器上的SonarQube实例关联,请按照以下步骤操作:
步骤 1:在SonarQube服务器生成用户令牌
- 登录SonarQube网页后台(如
http://your-server:9000
)。 - 进入 User > My Account > Security。
- 在 Generate Tokens 输入令牌名称(如
vscode
),点击 Generate。 - 复制生成的令牌(关闭页面后将无法查看)。
步骤 2:在VSCode中配置SonarQube插件
-
安装插件:
- 如果使用 SonarLint (推荐):安装扩展
SonarLint
。 - 如果使用 SonarQube官方插件 :安装扩展
SonarQube
。 - 打开VSCode扩展市场搜索并安装。
- 如果使用 SonarLint (推荐):安装扩展
-
配置服务器连接:
-
SonarLint:
- 打开命令面板(
Ctrl+Shift+P
),搜索并运行SonarLint: Connect to SonarQube
。 - 输入:
- Server URL :
http://your-server:9000
(替换为实际地址) - Token: 粘贴步骤1生成的令牌。
- 保存配置。
- 打开命令面板(
-
SonarQube插件:
- 打开VSCode设置(
Ctrl+,
),搜索SonarQube
。 - 配置以下字段:
- Server URL :
http://your-server:9000
- Token: 粘贴步骤1生成的令牌。
- (可选)指定项目键等参数。
- 打开VSCode设置(
-
步骤 3:绑定项目到SonarQube服务器
-
确保项目已存在SonarQube服务器:
- 在SonarQube网页创建或确认已有项目(项目键需唯一)。
-
本地项目配置:
-
在项目根目录创建
sonar-project.properties
文件,填写以下内容:propertiessonar.projectKey=your-project-key sonar.projectName=Your Project Name sonar.sources=. sonar.host.url=http://your-server:9000 sonar.login=生成的令牌
-
或通过VSCode插件界面直接绑定项目键。
-
步骤 4:验证连接
- 在VSCode中打开项目,触发代码分析(如保存文件或手动运行分析)。
- 检查输出窗口(
View > Output
,选择SonarQube/SonarLint日志):- 若显示
Connected to SonarQube
,表示成功。 - 若报错,检查网络、令牌或URL是否正确。
- 若显示
常见问题排查
- 连接失败 :
- 确保服务器地址可从VSCode环境访问(测试
curl http://your-server:9000
)。 - 检查令牌是否有效(尝试在终端用
curl -u :YOUR_TOKEN http://your-server:9000/api/system/status
验证)。
- 确保服务器地址可从VSCode环境访问(测试
- 项目不匹配 :
- 确认
sonar.projectKey
与服务器上的项目键完全一致。
- 确认
完成以上步骤后,VSCode即可将代码分析结果同步到SonarQube服务器,实现质量门禁和报告的统一管理。