如何在 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 报告。
选项 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?的主要内容,如果未能解决你的问题,请参考以下文章