如何在 spotbugs 中集成 find-sec-bugs?

Posted

技术标签:

【中文标题】如何在 spotbugs 中集成 find-sec-bugs?【英文标题】:How to integrate find-sec-bugs in spotbugs? 【发布时间】:2021-07-23 23:07:39 【问题描述】:

最近我下载了 findsecbugs-plugin-1.11.0.jar 以便在 spotbugs 中使用它。我把这个jar文件复制到了项目spotbugs(4.1.4)的plugin文件夹中。

我使用 ant 执行 spotbugs。当我运行 ant 目标时,我收到以下消息:

 [spotbugs] Executing SpotBugs FindBugsTask from ant task
 [spotbugs] Running SpotBugs...
 [spotbugs] The following classes needed for analysis were missing:
 [spotbugs]   apply
 [spotbugs]   applyAsInt
 [spotbugs]   test
 [spotbugs]   accept
 [spotbugs] Java Result: 3
 [spotbugs] Classes needed for analysis were missing

你知道我需要哪些额外的 jar 文件吗?

【问题讨论】:

你有没有考虑过使用Maven,或者Ant有什么特别的原因? 不幸的是,我必须使用ant。 【参考方案1】:

很遗憾,Ant 集成没有插件配置。

选项 1:执行任务

您可以运行 Find-Security-Bugs 的命令行版本。您必须使用exec 任务调用该工具。有了这个,您将能够生成 XML、html 和 SARIF 报告。

Download find-sec-bugs cli from release Exec task from Ant

选项 2:Java 任务

作为替代方案,您可以使用 Java 任务调用处理 SpotBugs 的 CLI 接口的类 edu.umd.cs.findbugs.FindBugs2

您可以从使用 AntRunner 的 Maven 实现中获得灵感。

ant.java(classname: "edu.umd.cs.findbugs.FindBugs2", inputstring: getSpotbugsAuxClasspath(), fork: "$fork", failonerror: "true", clonevm: "false", timeout: "$timeout", maxmemory: "$maxHeapm") 
...

我不能 100% 确定您可以从 Ant 脚本中定义 pluginArtifacts。您可能需要创建一个小插件来执行此操作。

从 Ant java 任务调用 FindBugs2 的示例: SpotBugsMojo.groovy Java task

【讨论】:

以上是关于如何在 spotbugs 中集成 find-sec-bugs?的主要内容,如果未能解决你的问题,请参考以下文章

SonarQube 9.0 - FindBugs/SpotBugs 插件?

如何在 IOS 中集成 Javascript

如何在 XAMPP 中集成 sqlite 扩展?

如何在 laravel 中集成 Paypal 支付网关?

如何在flutter中集成paypal支付

如何在 codeigniter 中集成 agora sdk