IDEA中SonarLint插件的安装与配置

2023-11-13

本文内容概要

本文介绍了IDEA SonarLint插件的装,以及配置SonarLint使用 SonarQube的规则.
注意:不含有SonarQube安装和使用.

代码管理Sonar和SonarLint简介

Sonar简介摘自sonar百度百科

Sonar(代码质量管理平台)是一个开源平台,用于管理Java源代码的质量。从 Sonar 1.6 版本开始,Sonar从一个质量数据报告工具,转变成为的代码质量管理平台。
主要特点
代码覆盖:通过单元测试,将会显示哪行代码被选中
改善编码规则
搜寻编码规则:按照名字,插件,激活级别和类别进行查询
项目搜寻:按照项目的名字进行查询
对比数据:比较同一张表中的任何测量的趋势

SonarLint,官网地址https://www.sonarlint.org/

Fix issues before they exist
SonarLint is an IDE extension that helps you detect and fix quality issues as you write code.
Like a spell checker, SonarLint squiggles flaws so that they can be fixed before committing code.
蹩脚的翻译
在问题出现前就修复
SonarLint 是一个IDE的扩展插件,帮助发现和修复你所写的代码质量问题.
就像一个拼写检查器,SonarLint可以(协助你)在代码提交前就暴露修复问题.

官方网站首页也有视频介绍,可以自行观看进行简单了解.

SonarLint使用初步体验:

  1. SonarLint发现的问题后,会根据问题类型给出推荐的的范例代码协助开发人员找到合适的修改思路.
  2. 但是默认规则从代码规范,命名,可以省略不必要代码,方法逻辑复杂度等多个维度进行规范评估,给出信息种类过于多,试用之后,根据需要先定制下使用哪些规则,才更好有针对性的使用.
  3. 错误发现有时候不如FindBugs.
    见下图iqtAnalysisTsmMap是一个key类型是String的Map,KeySB是StringBuffer类型.SonarLint没有发现这个BUG.
     Map<String, IqtAnalysisTsm> iqtAnalysisTsmMap 	 = new HashMap<>();
     StringBuilder keySB = new StringBuilder();
    if(iqtAnalysisTsmMap.containsKey(keySB)){
    	//TODO:
    }
    
    不过SonarLint发现了我写的 两个Double类型变量 ==比较的用法错误.建议我改为equal.

IDEA安装插件SonarLint

注:本文使用的IDEA版本:IntelliJ IDEA 2018.2.7 (Ultimate Edition)

打开IDEA插件安装界面.
默认快捷键Ctrl+Alt+S.或者鼠标点击菜单File->Settings…

鼠标点击菜单File->Settings...
在左上角红框可以输入plugins几个字符,快速过滤,鼠标点击下面过滤出来的Plugins菜单,在点击右下红框 Browes repositeries…
在这里插入图片描述
再弹出窗口搜索框里输入sonar,选中SonarLint,再点击页面右边的绿底色Install按钮
在这里插入图片描述
之后等待安装完毕.在IDEA底部会有安装进度
IDEA底部呈现的插件安装进度
,鼠标点击可以展开详细进度.
鼠标点击后的详细进度
如果网络不好出现如下提示的话.
下载SonarLint插件失败

  1. 等网络稳定再次尝试重新安装.
  2. 设置插件安装的代理服务器
    按下图红框操作打开IDEA插件代理配置界面
    根据自己的代理情况,选择合适的配置开启插件安装的代理模式.设置IDEA插件安装的代理
  3. 使用离线安装方式.
    打开IDEA官方插件网站:http://plugins.jetbrains.com/idea
    搜索想要安装的插件,比如本文要安装的插件 SonarLint,在下面提示的下拉备选中,选择SonarLint跳转到插件页面.
    搜索想要安装的插件
    在插件页面下面找到历史版本(Version History),找到想使用的版本,点击downLoad等待下载完成.
    在这里插入图片描述
    注意:需要关注选择的插件版本与自己使用的IDEA版本以及版本号是否适配.下图红框可以选择自己使用的IDEA的发型版本,下面红框列是该版本的版本号,可以与自己使用的版本号进行比对.
    在这里插入图片描述

在这里插入图片描述
下载完成后,可以直接把插件压缩包直接拖到IDEA的工作区间,IDEA会自动识别插件包,并询问是否安装.

注意:需要重启IDEA让SonarLint插件生效

配置SonarLint

Ctrl+Alt+S呼叫出设置菜单,过滤窗口可以输入sonar,找到下图菜单
SonarLint General Settings :针对IDEA所有打开项目之后的SonarLint通用配置.
SonarLint Project Settings :针对当前这一个项目配置生效.

配置SonarLint General Settings

我们先配置SonarLint General Settings,点击右侧红框里的+号
在这里插入图片描述
弹窗窗口里,填写这个SonarLint的名称,我们使用的是本地sonarQube,选择的右边配置,输入sonarQube IP和端口号.完成后点击Next.
在这里插入图片描述
设置认证方式,有Token和用户名密码两种方式,根据自己的情况选择对应方式进行配置.
在这里插入图片描述
本文使用用户名密码方式.最后点击Finish完成配置
在这里插入图片描述

  1. 是否开启自动分析:
    这里上面红框Automatically trigger analysis有配置是否允许自动分析,默认是勾选上的,开启自动分析功能,根据自己需求选择是否需要勾选开启.
  2. 更新获取远程SonarQube配置
    当远程SonarQube有更新,可以点击下面红框里的按钮Update Binding进行更新.
  3. 保存配置!
    点击下图中的Apply否则配置不会保存!
    点击下图中的Apply否则配置不会保存!
    点击下图中的Apply否则配置不会保存!

在这里插入图片描述

配置SonarLint Project Settings

  1. 选择下图中SonarLint Project Settings的菜单
  2. 勾选Enable binding to remote SonarQube server
  3. Bind to server 右边下拉选择刚才配置的 sonar配置名称
  4. 配置SonarQube project,可以点击Search in List,再弹出框里找到想使用的某个规则选择想使用的即可.
  5. 点击Apply使得配置生效保存
    在这里插入图片描述

查看SonarLint窗口

默认会在IDEA底部打开sonarLint标签窗口菜单.
在这里插入图片描述
如果没有,或者不小心关闭了.
可以点击菜单 view->Tool Windows中找到 SonarLint.重新打开SonarLint窗口
在这里插入图片描述

使用SonarLint

在项目目录结构中选择要分析的文件夹或是代码文件,右键菜单
Anaylyze->Analyze with SonarLint Https…
或者选中后使用快捷键
Ctrl+Shift+S

在这里插入图片描述

如果快捷键冲突参考下图
还是Ctrl+Alt+S打开IDEA设置页面,搜索keyMap,再在右侧搜索sonar,找到SonarLint的快捷键设置,修改为想使用的快捷键.
在这里插入图片描述

THE END

追加样式修改
鉴于sonarLint当前(20210301)还没有过滤错误功能。很不完善的妥协解决方式,可以尝试修改显示issue的样式代码,实时提醒问题时可以着重关注自己想关注的类型的问题。
打开如下图界面:Settins->Editor->Color Scheme->SonarLint

  1. 在截图中间红框里选择想要修改分类的issue在右边先取消勾选 Inherit values from:的复选框,然后在右上方红框里自定义样式
  2. 可以考虑把其他issue右边的复选框都取消掉,显示起来跟常规代码样式一致(显示上忽略掉了其他不关注的类型,但是sonarLint检测还是会检测到,掩耳盗铃的妥协显示实现方案)
  3. 也可以考虑单独把关注的 issue 更换成自己想要的醒目的样式

右边样式详解
Selected issue 表示代码中选中这个issue要显示的样式
下面讲解的样式效果解释都是 issue 代码块样式,最下方是样式实时调整的预览效果
Bold issue代码块粗体显示
italic 斜体
Foreground 代码块字色
BackGround 代码块背景色
Efffects 边框特效,右边选边框颜色。下面下拉框选择样式。有一些下划线,粗下划线,删除线,波浪线等。
Inherit values form: 勾选就无法自定义样式了。继承系统主题默认的错误提示样式。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IDEA中SonarLint插件的安装与配置 的相关文章

  • Idea如何导入一个SpringBoot项目

    最近公司要求开发工具要用Idea 作为一个eclipse的老员工 记录一下Idea中遇到的坑 刚开始用Idea从Git上导入一个项目时 遇到了很多坑 网上有很多方法 我不多做介绍 只说明一下我使用的方法 1 本地新建一个文件夹 从git上导
  • 命令行传参

    命令行传参 运行一个程序时传递给它消息 依靠命令行参数给main 函数实现 public class mainTest public static void main String args for int i 0 i lt args le
  • idea中创建xml,xml中路径报错

    1 先创建模板 2 新建xml 3 下面的路径可能会报红 4 解决方法
  • idea 常用 插件备份

    一 java 序号 强烈推荐 插件名称 功能描述 使用 1 IDE Eval Reset idea 无限7天 续杯 你懂得 插件 2 CodeGlance2 在滚动条边上显示代码文件内容缩略图 可以快速定位到指定位置 3 Alibaba C
  • Idea中Java项目修改项目名

    1 修改项目文件夹名称 下面是在Idea中改 也可以直接找到项目文件夹重命名 2 关闭项目 Idea会默认生成原项目名的文件夹 将其删除 3 导入重命名后的项目文件夹 4 导入成功后 在Idea中修改模块名称 大功告成 修改项目名总共有三处
  • 报错为method does not override method from its superclass解决

    你要重写接口的方法就得让实现类实现接口 public class UserServiceImpl implements UserService 没有实现接口就加重写注解 Override 系统不知道重写了什么接口方法 肯定报错 建议巩固一下
  • idea中Java Web项目的访问路径问题

    说明 这里只以 servlet 为例 没有涉及到框架 但其实路径的基本原理和框架的关系不大 所以学了框架的同学如果对路径有疑惑的也可以阅读此文 项目结构 在 idea 中新建一个 Java Web 项目 项目的初始结构如下 不同版本的 id
  • activiti7-1-环境准备(idea)

    activiti7环境准备 1 首先安装插件 2 然后建库 3 pom 4 配置文件 4 1 log4j properties 4 2 activiti cfg xml 5 测试类生成表 6 目录结构 7 最后的操作 务必看一看 又回到cs
  • 使用IntelliJ IDEA开发Java Web HelloWorld

    下载Tomcat 首先 下载Apache Tomcat并解压到本地计算机 可存放于任何位置 tomcat官网 https tomcat apache org 下载稳定版版本即可 下载解压好 启动bin下的startup bat文件 访问 h
  • IDEA插件-CheckStyle的安装与使用

    目录 一 安装CheckStyle 二 配置CheckStyle 三 使用CheckStyle 一 安装CheckStyle 1 依次访问IDEA gt gt File gt gt Settings gt gt Plugins gt gt
  • IDEA去除掉虚线,波浪线,和下划线实线的方法

    推荐一下个人的公众号 终码一生 专注于Java技术学习 开源项目分享和常见问题解决等 喜欢的小伙伴可以关注下 感谢大家的支持 初次安装使用IDEA 总是能看到导入代码后 出现很多的波浪线 下划线和虚线 这是IDEA给我们的一些提示和警告 但
  • IDEA java.lang.NullPointerException (no error message)

    今天在不停启动debug 停止debug后无法再启动debug 提示java lang NullPointerException no error message 经百度 删除 project下 gradle无效 恢复代码后无效 且未更改配
  • IDEA 查看Springboot单元测试代码覆盖率报错

    报错信息 D resource java jdk 1 8 261 bin java exe ea javaagent C Users 镜 AppData Local JetBrains IntelliJIdea2020 2 testAgen
  • IntelliJ IDEA 学习笔记 - 几个窗口布局设置技巧

    原文 https blog csdn net cgl125167016 article details 79000774 utm source copy IntelliJ IDEA 简体中文专题教程 编辑区分屏 IntelliJ IDEA
  • IntelliJ IDEA出现红色字体解决办法

    如图所示 问题 ApiModel显示红色 点击alt enter提示需要添加io swagger包到classpath中 因为在pom xml中没有把此包引入 如图 解决方案 在pom xml中添加io swagger包 经历1 当我根据I
  • 蓝桥杯-快乐数-力扣

    202 快乐数 编写一个算法来判断一个数 n 是不是快乐数 快乐数 定义为 对于一个正整数 每一次将该数替换为它每个位置上的数字的平方和 然后重复这个过程直到这个数变为 1 也可能是 无限循环 但始终变不到 1 如果这个过程 结果为 1 那
  • 禁用 Eclipse Remote Systems Explorer 的 Sonarlint 自动扫描

    如何在 Eclipse 中禁用远程系统资源管理器插件的 SonarLint 自动扫描 背景 我最近为 Eclipse 安装了 SonarLint 插件 因为我工作的一个客户使用 Sonar 来提高代码质量 并且喜欢直接报告错误和代码异味 现
  • 减少非空开关案例声纳棉绒问题的数量

    我的开关盒内有大约 100 个非空盒子 每种情况调用不同的函数 Sonar 正在显示将非空开关案例数量减少到最多 30 个的问题 是否有任何替代方案来实现此类开关案例 或者拥有任意数量的开关案例都没有问题 for int i 0 i
  • 配置文件中的$和@

    配置文件中的 和 0 前言 借鉴文章 https blog csdn net Saintmm article details 124603343 https blog csdn net ster ben article details 11
  • 如何安装较旧的 SonarLint Eclipse 插件

    目前 Eclipse Marketplace 中的 SonarLint 仅提供最新版本 2 5 1 出于兼容性原因 我需要版本 2 2 1 如何安装我选择的旧版本 不使用 Eclipse Marketplace 而是使用菜单帮助 安装新软件

随机推荐

  • 国外那些富有创意的 404 页面

    点击上方 前端号 点亮你的前端技能树 最近在搜集前端相关文章时 无意看到了几篇关于国内外 404 页面的收集 觉得很多网站的 404 页面 特别富有创意 所以趁着周末还有些空余的时间 去梳理了一份富有创意的 国外网站 404 页面 正值周末
  • QT开发(二)(信号和槽)

    QT开发 标准信号和槽 自定义槽 带参信号 Lambda表达式 代码 标准信号和槽 main cpp如图所示 诸多的控件应该在主窗口中去实现而不应在主函数中实现 改变编码 TOOLS gt options gt TextEditor gt
  • Qt之QThread详解

    一 线程管理 1 线程启动 void start Priority priority InheritPriority 调用后会执行run 函数 但在run 函数执行前会发射信号started 操作系统将根据优先级参数调度线程 如果线程已经在
  • mac解决Enter passphrase for key每次输入密码

    欢迎点击领取 前端面试题进阶指南 前端登顶之巅 最全面的前端知识点梳理总结 分享一个使用比较久的 1 理解公钥 私钥 当我们关联好自己的git时 发现每次pull 或 push代码时会让我们重复性输入自己的密码 问题不是出在我们关联的不对
  • centos6和centos7防火墙的关闭

    原文 CentOS6 5查看防火墙的状态 1 zh localhost service iptable status 显示结果 1 2 3 4 5 zh localhost service iptable status Redirectin
  • MATLAB使用单纯形法解决线性规划问题,函数形式调用,举例演示

    线性规划隶属于范畴学 在现实的应用十分广泛 简单来说 就是自变量在线性约束的条件下 求线性函数的最小值或最大值 对于优化问题 其数学模型往往需要提取出关键的三要素 即 自变量相关的约束条件 自变量的取值范围 关于自变量的目标函数 对于线性规
  • 【泛微E9开发】workflowservice创建流程

    最下面附demo下载地址 包括所需要的JAR文件 package test WorkflowServicePortType import org junit Test import weaver workflow webservices W
  • python创意作品-python的作品

    广告关闭 2017年12月 云 社区对外发布 从最开始的技术博客到现在拥有多个社区产品 未来 我们一起乘风破浪 创造无限可能 发现了编程与艺术又一个契合点 小开心一下 其实这个过程非常简单 我们先看作品 后讲解代码 python书法作品1
  • 自定义TableLayoutPanel使它能够在运行时用鼠标改变行高和列宽。

    using System using System Collections Generic using System ComponentModel using System Drawing using System Windows Form
  • 1054 求平均值 (20 分)

    1054 求平均值 20 20 分 本题的基本要求非常简单 给定N个实数 计算它们的平均值 但复杂的是有些输入数据可能是非法的 一个 合法 的输入是 1000 1000 区间内的实数 并且最多精确到小数点后2位 当你计算平均值的时候 不能把
  • TiKV架构解析

    TiKV架构解析 TiKV 的整体架构比较简单 如下 参考资料 1 TiKV 源码解析系列 如何使用 Raft 2 TiKV 源码解析系列 multi raf
  • Connection timed out: connect. If you are behind an HTTP proxy, please configure the proxy settings

    Connection timed out connect If you are behind an HTTP proxy please configure the proxy settings either in IDE or Gradle
  • 我的2018年总结

    前言 本来没有打算总结自己的2018年 毕竟自己就是个普通的不能再普通的学生 没有什么特别值得让人关注的地方 但是今天看到了自己的好朋友昨天写了他的2018年总结 看了感觉记录一下自己的生活还是挺有意义的 所以就也打算稍微写一点 毕竟写这些
  • 启动Nginx报[10013]错误的解决方案

    报错情景 今天自己再本地配置好Nginx 但是启动时报了 10013 的错误 上网查了下 原因是80端口被占用了 错误提示如下图 随后在cmd中输入下列命令 如图示 查看了一下80端口的占用情况 发现果然被占用 情况和网上其他人所遇到的是一
  • Nacos使用域名做为服务地址遇到的问题及解决方案

    一 发现问题 应用启动时 增加Nacos服务端的配置信息 应用使用IP加端口连接Nacos服务器时 运行一切正常 启动参数增加以下Nacos参数 Dspring cloud nacos discovery namespace DEV Dsp
  • NUC980开源项目28-error: RPC failed; curl 56 GnuTLS recv error (-110): The TLS connection was

    上面是我的微信和QQ群 欢迎新朋友的加入 项目码云地址 国内下载速度快 https gitee com jun626 nuc980 open source project 项目github地址 https github com Jun117
  • ES6 -- Iterator 的基本用法

    1 Iterator作用 1 为各种数据 提供一个统一的 简便的访问接口 2 使数据结构的成员能够按某种次序排列 3 ES6创造了一种新的遍历命令for of循环 Iterator接口主要供for of消费 2 Iterator 的遍历过程
  • 华为ensp---组播服务器实验

    一 实验拓扑 ensp里选择MCS为组播服务器 二 设置VLC参数 点击ensp右上角的设置 在工具设置里面把VLC的安装路径选上 三 详细配置 1 组播服务器配置 2 PC端配置 输入MCS组播的IP和MAC地址 2 路由器配置
  • NPM和webpack的关系(转载)

    入门前端的坑也很久了 以前很多大小项目 前端都是传统式开发 一直在重复造轮子 接触VUE后 对vue cli有了解后 仅仅知道vue cli是一个vue项目的脚手架 可以快速的构建一个vue的基于npm的模块化项目 vue内部的打包机制其实
  • IDEA中SonarLint插件的安装与配置

    本文内容概要 本文介绍了IDEA SonarLint插件的装 以及配置SonarLint使用 SonarQube的规则 注意 不含有SonarQube安装和使用 代码管理Sonar和SonarLint简介 Sonar简介摘自sonar百度百