问题标签 [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.
java - 为 ant spotbugs 编辑 build.xml
我正在努力解决以下问题:我想设置我的 ant 来编译 Java 源代码。一切正常,但我也想使用 spotbugs / findpugs 分析工具。
所以在手册中是这样写的:
老实说,我不知道他们想从我这里得到什么。什么是类名?我在这里坐了几个小时,没有找到解决办法。当然,spotbugs 说找不到该类。究竟是什么预期的?
java - 在构建 xml (ant) 中包含 spotbugs 目标
对不起,我又挣扎了。所以 taskdef 工作正常,但我无法实际使用 spotbugs。
所以我想检查代码
ant -Dpackage=einstieg 错误
并收到“问题:未能创建任务或键入 spotbugs”。我用于 checkstyle 的相同模式完美地工作。taskdefinition 指向spotbugs 和所需的类——没有任何错误。有什么建议么?
所以我认为点到spotbugs 根本不存在。但是 /lib 目录中存在合适的文件。
这就是 Taskdefinition 的样子:
findbugs - 如何将 findbugsXml.xml 转换为 excludeFilterFile?
我还在SpotBugs issue tracker上问过这个问题。
抱歉,仍在使用 FindBugs,但我们的积压中有一张升级到 SpotBugs 的票,据我了解,配置是相同的,我只需要更新groupId
,artifactId
和version
.
这是我的一块pom.xml
:
我运行以下命令:
这会生成一个文件target/findbugsXML.xml
,其中包含BugInstances
如下所示:
我想将此报告用作基线,以防止新的 Findbugs 错误蔓延,因此我想将此报告转换为excludeFilterFile
.
对于上面的代码片段,语法应该变成:
根据这个 Stack Overflow 答案,我应该做的是:
- 运行构建以生成
target/findbugsXML.xml
(已经完成) - 跑
mvn findbugs:gui
- 加载
findbugsXml.xml
文件 - 选择警告的根节点(因为我想要所有警告)
- 将排除项保存到
findbugs-filter.xml
当我这样做时,我会得到一个findbugs-filter.xml
包含以下内容的文件:
那是一个空的过滤器文件。
那么我在这里做错了什么?生成过滤器文件的正确方法是什么?我希望我不必手动执行此操作,因为实际上有数百个警告。
jenkins - 在 Jenkins 上用 SpotBugs 替换 FindBugs 时应该使用哪个插件?
我现在正在使用 FindBugs。我听说 FindBugs 现在已经过时了。SpotBugs 是 FindBugs 的继承者。我想在我的 Jenkins 中安装 SpotBugs 插件。
我在可用插件区域搜索了 SpotBugs,但没有找到任何东西。也没有发现任何线索或 SpotBugs 与 Jenkins 的关系。
我在哪里可以找到 SpotBugs 的 Jenkins 插件,或者还有其他方法吗?
gradle - 使用 spotbugs 的简单 gradle 文件并找到安全漏洞?
有没有人有一个使用“旧”形式的插件条目的 gradle 5.X 的基本 gradle 文件,它同时使用了 spotbugs 和 find-security-bugs,并且当 ./gradlew clean build 运行时将同时执行 spot bugs 和安全漏洞?
我可以让现场错误正常工作(他们为什么要重命名它?多么烦人),但无法让安全漏洞正常工作。
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。
java - 如何解决 LI_LAZY_INIT_UPDATE_STATIC?
我正在尝试为MethodHandle
上游库中的非公共方法初始化一个。
我的SpotBugs Bug Detecter Report 说ofMethod()
存在LI_LAZY_INIT_UPDATE_STATIC问题。
我明白它在说什么。我看到这两个步骤(分配和设置可访问)在多线程环境中是有问题的。
我该如何解决这个问题?我应该应用双重检查锁定吗?
还是我应该把ofMethod()
逻辑放进去ofHandle()
?
java - Spotbugs 与 JDeveloper 的集成
我是一名构建工程师,我的开发团队在 Jdeveloper IDE 中开发代码。有没有办法直接在 Jdeveloper 中集成 spotbugs 并找到 bug?
java - Spotbugs 查找 java 文件中的错误
目前,我们正在针对 jar 运行 Spot Bug 以查找错误。有什么方法可以在单个 java 文件上运行 spotbugs 以查找其中的错误列表
java - 如何找到不再需要的@SuppressFBWarnings 注释?
我正在使用具有大量注释的中型 Java 代码库。@SuppressFBWarnings
其中一些(并非全部)不再需要,因为代码已经通用,API 改进等。
有没有办法找出哪些注释不再需要?
我可以将它们注释掉并重新运行 SpotBugs,但是手动识别哪些需要哪些不需要真的很乏味。所以我希望有一些 SpotBugs 选项,比如+warningToken
Eclipse 编译器,或者一些更有想象力的解决方案。