问题标签 [sonarlint-eclipse]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
293 浏览

sonarqube - 在连接模式下下载问题时,有没有办法告诉 SonarLint Eclipse 添加项目根文件夹?

我在连接模式下运行 SonarLint,它成功下载了有关规则和问题的更一般信息,

例如

/batch/issues?key=MyProject

工作正常。

当我在 Eclipse 中打开特定源文件时,该文件会使用服务器中的规则正确分析,但下载服务器问题的请求失败。

SonarLint 控制台:

找到 8 个问题
在 328 毫秒内完成
下载 /project_root/src/main/java/com/mycompany/mypackage/MyClass.java 的服务器问题

但请求失败并显示 HTTP 404 代码和以下消息:

{"errors":[{"msg":"组件键 'MyProject:src/main/java/com/mycompany/mypackage/MyClass.java' 未找到"}]}

如果我从浏览器发送请求并手动将“project_root/”添加到密钥,则请求成功并且我得到服务器问题。

我在 SonarQube 中找到了一些关于此请求的文档,位于

[mysonarhost]/web_api/batch/issues

但它并没有透露太多关于密钥的正确值。似乎 SonarLint 和 SonarQube 不同意特定源文件的“文件密钥”应该是什么。

这是可以通过 SonarLint 中的某些设置来解决的问题,还是我需要更改我的 SonarQube 项目设置?

版本:

Eclipse:
版本:Oxygen.3 Release (4.7.3)
Build id:20180308-1800

Eclipse 的 SonarLint:
3.4.0.201803051332

SonarQube:
版本 6.7.2(内部版本 37468)

0 投票
3 回答
9927 浏览

java - SonarLint 插件在 Eclipse Oxygen 中不起作用

我正在尝试让 SonarLint 插件在 Eclipse 中工作,但我运气不佳。更具体地说,在查看 Java 项目中的简单 Java 类时,我没有看到“SonarLint On-the-fly”选项卡中检测到或突出显示的任何问题。

我使用以下软件。

操作系统

赢 10 专业版 - 版本 1709

爪哇

java版本“1.8.0_161”

Java(TM) SE 运行时环境 (build 1.8.0_161-b12)

Java HotSpot(TM) 64 位服务器 VM(内部版本 25.161-b12,混合模式)

日食

版本:Oxygen.3 版本 (4.7.3)

声纳软件:

SonarLint Eclipse 插件

org.sonarlint.eclipse.site-3.4.0 来源:https ://www.sonarlint.org/eclipse/

声纳

SonarQube 7.0 来源:https ://www.sonarqube.org/downloads/

声纳扫描仪

sonar-scanner-3.1.0.1141 来源:https ://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner (Windows 64 位 - 链接)

我下载了 SonarLint Eclipse 插件并在 Eclipse 中成功安装了它。我可以看到所有 SonarLint 选项卡和配置选项。

我下载并成功设置了 SonarQube 服务器(默认端口 9000 上的 localhost)。我还下载并设置了声纳扫描仪。

我在 Eclipse 中创建了一个简单的 Java 项目,并在其中创建了一个 Java 类。我将 sonar-project.properties 文件添加到 Java 项目中。

声纳-project.properties

我的 Eclipse Java 项目如下所示:

在此处输入图像描述

我已成功设置我的项目绑定。

在此处输入图像描述

我可以启动 SonarQube 并毫无问题地登录。我在 Windows 资源管理器中导航到“简单项目”的位置,并从那里打开了 Windows PowerShell。

我在成功扫描了简单项目的 Windows PowerShell 中执行了命令sonar-scanner,我可以在我的 SonarQube 服务器中看到结果。

在此处输入图像描述

所以到目前为止一切都很好。但是...... Eclipse 中没有任何问题的迹象。我在 Eclipse 的 SonarLint On-the-fly 选项卡下看不到任何问题。

在此处输入图像描述

我确实启用了(选中)“自动运行 SonarLint”,并且我还尝试通过右键单击文件 > SonarLint > 分析来手动分析 App.java 文件。

我发现代码中没有下划线或“SonarLint On-the-fly”选项卡中列出的问题。我一定在某处错过了一步。谁能给我任何提示如何让自动 SonarLint 问题检测在 Eclipse 中工作?

谢谢!

0 投票
1 回答
1541 浏览

rule - SonarLint 规则中的“squid:”前缀是什么意思?

我刚开始使用 Eclipse 的 SonarLint 插件来分析我的 Java 代码。我想知道,SonarLint Rule 键中的“squid:”前缀是什么意思?它代表什么吗?(见下面的截图)

声纳规则配置对话框

谢谢!

迈克尔

0 投票
1 回答
1304 浏览

sonarlint - SonarLint 更改允许的认知复杂性

我想将 SonarLint 中方法的允许认知复杂度从默认值 15 更改为较低的值,例如 10。我正在使用用于 Eclipse 的 SonarLint 插件。

如何才能做到这一点?

0 投票
1 回答
278 浏览

java - Java - SonarLint Detect the Blocker - 在“finally”子句中关闭此“PreparedStatement”

标题:Java - SonarLint Detect the Blocker - 在“finally”子句中关闭此“PreparedStatement”。

问题:我在一个方法中有多个 PreparedStatement(示例),然后我已经关闭 PreparedStatement 但 PreparedStatement 的第一行(//preparedStatement no 1 - table_a)仍然检测到 Blocker -(在“finally”中关闭此“PreparedStatement”条款)

0 投票
2 回答
1097 浏览

java - SonarLint:将此 lambda 替换为方法引用

我有一个包含错误列表的集合。我想通过一个键(UUID UserId)对它们进行分组。为此,我从这个答案中复制了代码: https ://stackoverflow.com/a/30202075/4045364

Sonar Lint 给我以下错误:

将此 lambda 替换为方法引用。->

我试过的:

基于这些问题:SONAR: Replace this lambda with a method referenceRunable Interface : Replace this lambda with a method reference。(未设置 sonar.java.source。假设为 8 或更大。)

基于这个问题:Replace this lambda with method reference 'Objects::nonNull'

两者都给出错误:

此表达式的目标类型必须是函数式接口

有没有办法解决这个 SonarLint 问题?

0 投票
2 回答
6768 浏览

eclipse - 如果排除了文件,如何在声纳 lint 中包含文件以进行分析?

我在 sonarlint 菜单中单击了“排除”以获取文件。现在我不知道如何启用它?

该文件的 sonarlint 分析选项现在是灰色的。我尝试在 Preferences > SonarLink > File Exclusions 中查找排除的文件,但该文件不在列表中

在此处输入图像描述

如何从声纳皮棉排除中删除文件?

Eclipse 版本:Mars.2 版本 (4.5.2)

SonarLint 版本:SonarLint for Eclipse 3.6.0.201806071228

0 投票
2 回答
16746 浏览

eclipse-plugin - 在 eclipse 中离线安装 sonarlint 插件

我有一些系统,由于安全问题,我们让它们没有互联网。我们如何在 Eclipse 中离线安装 sonarlint 插件?安装的手动步骤是什么?我们从哪里下载这个jar?

0 投票
1 回答
804 浏览

sonarqube - SonarLint for Eclipse 无法绑定项目:只能返回前 10000 个结果

无法从服务器
sonarqube 服务器 url ”更新数据 sonarqube服务器 url
/api/rules/search.protobuf?f=repo,name,severity,lang,htmlDesc,htmlNote,internalKey,isTemplate,templateKey,actives&statuses=BETA 上的错误 400 , DEPRECATED,READY&p=21&ps=500:只能返回前 10000 个结果。询问了第 10500 个结果。

0 投票
2 回答
2960 浏览

java - Eclipse - 使用新字符串的声纳 S2629 可能出现误报

我正在使用最新的 Eclipse 和 Sonar 插件

作为日志记录的答案,有以下行:

只有在调试级别时才应该创建字符串:

但声纳将其标记为squid:S2629

“先决条件”和日志记录参数不应该需要评估 (squid:S2629)

并给出连接示例

logger.log(Level.DEBUG, "出了点问题:" + message); // 不合规的;即使日志级别太高而无法显示调试消息,也会执行字符串连接

这是误报声纳警告还是我错过了什么?

这不是这个问题的重复,该问题通常询问规则概念,即连接,但不使用创建对象进行格式化new String

答案的链接还说创建new Date()不会产生内置格式的问题:

以这种方式记录,可以避免在实际不记录任何内容时字符串连接的性能开销。