4

我正在尝试让 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

# must be unique in a given SonarQube instance
sonar.projectKey=sp
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
sonar.projectName=Simple Project
sonar.projectVersion=1.0

# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# This property is optional if sonar.modules is set. 
sonar.sources=.

# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8

我的 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 中工作?

谢谢!

4

3 回答 3

4

事实证明,问题出在我的包命名约定中。将包名称从“com.test.pckg”更改为“com.dev.pckg”解决了这个问题。

SonarLint Google Group 的 Jonathan 指出了以下几点:

Eclipse 中的 Sonarlint 无法查看哪些文件是测试文件以及哪些文件是源文件,因此它使用了一个简单的正则表达式,在文件路径的任何位置查找关键字 test。从您的屏幕截图中,您的文件位于名为 test 的文件夹中,因此仅对其应用了测试规则。

尝试将文件放在路径中没有单词 test 的包中,或检查 Sonarlint 选项以查看是否可以编辑正则表达式。

来源:https ://groups.google.com/forum/?pli=1#!topic/sonarlint/fw36A2H9AiI

于 2018-04-01T18:10:42.577 回答
1

您可以在 Window -> Preference -> 输入搜索文本文件“SonarLint”和第一个选项更改首选项搜索,您可以删除下一个选项“测试文件正则表达式”,您可以在测试文件中使用它:)在此处输入图像描述

于 2018-05-31T15:44:08.800 回答
0

由于我的市场无法正常工作,我曾离线尝试将 sonarlint 安装到 Eclipse 中。成功安装插件后,我无法看到该功能已启用。安装后没有反映。所以我下载了一个新的 Eclipse IDE,然后我就可以通过市场安装 sonarlint。之后,它反映在项目代码中。

于 2019-05-21T07:07:11.907 回答