问题标签 [spotbugs]

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 投票
1 回答
230 浏览

java - 为 ant spotbugs 编辑 build.xml

我正在努力解决以下问题:我想设置我的 ant 来编译 Java 源代码。一切正常,但我也想使用 spotbugs / findpugs 分析工具。

所以在手册中是这样写的:

老实说,我不知道他们想从我这里得到什么。什么是类名?我在这里坐了几个小时,没有找到解决办法。当然,spotbugs 说找不到该类。究竟是什么预期的?

0 投票
1 回答
636 浏览

java - 在构建 xml (ant) 中包含 spotbugs 目标

对不起,我又挣扎了。所以 taskdef 工作正常,但我无法实际使用 spotbugs。

所以我想检查代码

ant -Dpackage=einstieg 错误

并收到“问题:未能创建任务或键入 spotbugs”。我用于 checkstyle 的相同模式完美地工作。taskdefinition 指向spotbugs 和所需的类——没有任何错误。有什么建议么?

所以我认为点到spotbugs 根本不存在。但是 /lib 目录中存在合适的文件。

这就是 Taskdefinition 的样子:

0 投票
0 回答
232 浏览

findbugs - 如何将 findbugsXml.xml 转换为 excludeFilterFile?

我还在SpotBugs issue tracker上问过这个问题。

抱歉,仍在使用 FindBugs,但我们的积压中有一张升级到 SpotBugs 的票,据我了解,配置是相同的,我只需要更新groupId,artifactIdversion.

这是我的一块pom.xml

我运行以下命令:

这会生成一个文件target/findbugsXML.xml,其中包含BugInstances如下所示:

我想将此报告用作基线,以防止新的 Findbugs 错误蔓延,因此我想将此报告转换为excludeFilterFile.

对于上面的代码片段,语法应该变成:

根据这个 Stack Overflow 答案,我应该做的是:

  • 运行构建以生成target/findbugsXML.xml(已经完成)
  • mvn findbugs:gui
  • 加载findbugsXml.xml文件
  • 选择警告的根节点(因为我想要所有警告)
  • 将排除项保存到findbugs-filter.xml

当我这样做时,我会得到一个findbugs-filter.xml包含以下内容的文件:

那是一个空的过滤器文件。

那么我在这里做错了什么?生成过滤器文件的正确方法是什么?我希望我不必手动执行此操作,因为实际上有数百个警告。

0 投票
1 回答
2634 浏览

jenkins - 在 Jenkins 上用 SpotBugs 替换 FindBugs 时应该使用哪个插件?

我现在正在使用 FindBugs。我听说 FindBugs 现在已经过时了。SpotBugs 是 FindBugs 的继承者。我想在我的 Jenkins 中安装 SpotBugs 插件。

我在可用插件区域搜索了 SpotBugs,但没有找到任何东西。也没有发现任何线索或 SpotBugs 与 Jenkins 的关系。

我在哪里可以找到 SpotBugs 的 Jenkins 插件,或者还有其他方法吗?

0 投票
1 回答
1754 浏览

gradle - 使用 spotbugs 的简单 gradle 文件并找到安全漏洞?

有没有人有一个使用“旧”形式的插件条目的 gradle 5.X 的基本 gradle 文件,它同时使用了 spotbugs 和 find-security-bugs,并且当 ./gradlew clean build 运行时将同时执行 spot bugs 和安全漏洞?

我可以让现场错误正常工作(他们为什么要重命名它?多么烦人),但无法让安全漏洞正常工作。

0 投票
1 回答
183 浏览

java - 有没有办法用 PMD、Checkstyle、SpotBugs 等对不兼容的 Java API 引用进行 lint?

我们目前正在使用 Java Compiler 11 并将我们的主要工件部署到 Java 11。这里没问题。

不幸的是,我们使用的服务仅支持 Java 8,因此我们编译其中一些针对 Java 8。这里没有问题。

我们的问题是开发人员可能会引用 Java 8 运行时不可用的方法。例如List.of(),Optional::stream等。javac版本 11 会将其编译为 Java 8,但在 JVM 版本 8 上执行时会抛出异常。

后者很容易用简单的 grep 语句识别,但后者更棘手,涉及理解代码/AST。

我检查了 Checkstyle、Spotbugs 和 PMD 的文档,但没有成功。IntelliJ 在这方面其实很擅长,但是它不能集成到我们的 CI 管道中。

我们得到了这个幼稚/简单的 grep 语句:

我们希望有一种准确的方法来识别不兼容的 API。

0 投票
1 回答
542 浏览

java - 如何解决 LI_LAZY_INIT_UPDATE_STATIC?

我正在尝试为MethodHandle上游库中的非公共方法初始化一个。

我的SpotBugs Bug Detecter Report 说ofMethod()存在LI_LAZY_INIT_UPDATE_STATIC问题。

我明白它在说什么。我看到这两个步骤(分配和设置可访问)在多线程环境中是有问题的。

我该如何解决这个问题?我应该应用双重检查锁定吗?

还是我应该把ofMethod()逻辑放进去ofHandle()

0 投票
1 回答
96 浏览

java - Spotbugs 与 JDeveloper 的集成

我是一名构建工程师,我的开发团队在 Jdeveloper IDE 中开发代码。有没有办法直接在 Jdeveloper 中集成 spotbugs 并找到 bug?

0 投票
2 回答
700 浏览

java - Spotbugs 查找 java 文件中的错误

目前,我们正在针对 jar 运行 Spot Bug 以查找错误。有什么方法可以在单个 java 文件上运行 spotbugs 以查找其中的错误列表

0 投票
2 回答
188 浏览

java - 如何找到不再需要的@SuppressFBWarnings 注释?

我正在使用具有大量注释的中型 Java 代码库。@SuppressFBWarnings其中一些(并非全部)不再需要,因为代码已经通用,API 改进等。

有没有办法找出哪些注释不再需要?

我可以将它们注释掉并重新运行 SpotBugs,但是手动识别哪些需要哪些不需要真的很乏味。所以我希望有一些 SpotBugs 选项,比如+warningTokenEclipse 编译器,或者一些更有想象力的解决方案。