发布时间:2023-05-13 文章分类:WEB开发, 电脑百科 投稿人:王小丽 字号: 默认 | | 超大 打印

需求描述

公司为项目代码配置了Sonar检测,希望在VSCode中开发项目时能够同步远程检测。

准备工作

首先要搭建java(版本11+)环境,建议直接从官网下载:JDK 11.0.18;没有Oracle账号非常推荐创建一个,流程很简单,填写一些信息即可~官网的资源和文档是获取最方便、问题最少的,比网络上大多数信息靠谱太多太多!!!(来自本·踩坑无数·杂鱼的忠告)
java环境变量配置可参考:java环境变量 的配置与详解(全网最详细教程)
Sonar:VSCode配置SonarLint/SonarLint连接SonarQube

SonarLint

点击VSCode左侧工具栏的“扩展”,搜索“SonarLint”并安装如图所示的插件:
Sonar:VSCode配置SonarLint/SonarLint连接SonarQube
从更改日志可以发现,SonarLint从2.0.0开始不再支持连接低于7.9的SonarQube服务,因此下文将分别介绍连接高版本和低版本SonarQube服务的操作。
Sonar:VSCode配置SonarLint/SonarLint连接SonarQube

SonarQube版本7.9+

①插件安装完成后,点击VSCode顶部工具栏的“查看”→“打开视图…”,并点击弹窗中的“SonarLint”:
Sonar:VSCode配置SonarLint/SonarLint连接SonarQube
Sonar:VSCode配置SonarLint/SonarLint连接SonarQube

②可以看到VSCode左下方出现了“SONARLINT CONNECTED MODE”面板:
Sonar:VSCode配置SonarLint/SonarLint连接SonarQube

③点击“Add SonarQube Connection”,并在出现的tab中输入SonarQube的Sever URL:“http://IP:9000/”
Sonar:VSCode配置SonarLint/SonarLint连接SonarQube

④点击“Generate Token”,在跳转的SonarQube页面中点击“允许连接”,生成的token将自动发送给VSCode并填入User Token栏:
Sonar:VSCode配置SonarLint/SonarLint连接SonarQube
Sonar:VSCode配置SonarLint/SonarLint连接SonarQube

⑤点击“Save Connection”保存连接,“SONARLINT CONNECTED MODE”面板下会出现建立的连接:
Sonar:VSCode配置SonarLint/SonarLint连接SonarQube

⑥点击远程连接右侧的“Add Project Binding”,选择对应的远程项目进行绑定即可:
Sonar:VSCode配置SonarLint/SonarLint连接SonarQube

SonarQube版本<7.9

①插件安装完成后,点击SonarLint插件的配置图标,选择“安装另一个版本”,并在弹窗中选择1.19.0(2.0.0之前最新的几个版本都行):
Sonar:VSCode配置SonarLint/SonarLint连接SonarQube
Sonar:VSCode配置SonarLint/SonarLint连接SonarQube

②使用admin账号登录SonarQube控制台(http://XXX/sessions/new),点击右上角头像->“My Account”->“Security”,在页面输入token名称并点击“Generate”,即可创建token(创建完成拷贝并保存好你的token字符串):
Sonar:VSCode配置SonarLint/SonarLint连接SonarQube
Sonar:VSCode配置SonarLint/SonarLint连接SonarQube

③1.19.0安装完成后,点击左下角齿轮按钮->“设置”打开设置页,点击右上角“打开设置(json)”打开用户的settings.json:
Sonar:VSCode配置SonarLint/SonarLint连接SonarQube
Sonar:VSCode配置SonarLint/SonarLint连接SonarQube

④增加SonarQube连接配置项:

"sonarlint.ls.javaHome": "E:\\你的JAVA_HOME路径",
"sonarlint.connectedMode.connections.sonarqube": [
    {
        "serverUrl": "http://IP:9000",
        "token": "你的token",
        "connectionId": "conn1" // 如果有多个连接,此id用于唯一标识连接
    }
],

Sonar:VSCode配置SonarLint/SonarLint连接SonarQube

⑤左侧“SONARLINT RULES”面板中可以查看同步的检测规则,当前打开文件中检测出的问题会出现在下方的问题面板中:
Sonar:VSCode配置SonarLint/SonarLint连接SonarQube

其他

绑定7.9以下的SonarQube服务后,还可以通过配置绑定远程项目,但配置后依然只能检测当前打开的文件,并非期望中显示项目下所有问题的效果;感觉配不配置大差不差,就不记录了,感兴趣的小伙伴可以参考SonarLint-Connected Mode配置试试~这篇博客的操作皆是参考这篇官方Wiki。

按“Ctrl + Shift + P”快捷键,在命令搜索框输入“sonar”,点击“SonarLint: Update all project bindings to SonarQube/SonarCloud”,可以刷新本地缓存。
Sonar:VSCode配置SonarLint/SonarLint连接SonarQube