有谁知道如何修复此错误以将 Findbugs 安装到 Netbeans 8.2 中?

Does anyone know how to fix this error to install Findbugs into Netbeans 8.2?

我在将 Findbugs 安装到 Netbeans 8.2 时出现以下错误:

"There were some problems while storing Establishing a connection …
Cause: Cannot resolve external reference to m2:/org:ow2:asm:asm-debug-all:5.0.2:jar"

我已尝试卸载 NetBeans 8.2 并删除与安装相关的所有内容以进行全新安装,但没有成功,我还尝试了最新版本的 NetBeans 11.3,但我发现它没有可用的 Findbugs。我需要一个学校项目的插件,但也没有人能够帮助我解决这个问题。任何帮助将不胜感激。

我使用的是 Windows 10 PC。

谢谢。

错误原因

发生此错误是因为当您下载插件时,NetBeans 还会尝试下载其他依赖项。 links 从哪里下载 jar 写在 nbm 包内。

例如,其中一个依赖项是asm-debug-all-5.0.2.jar,而link是:

http://repo1.maven.org/maven2/org/ow2/asm/asm-debug-all/5.0.2/asm-debug-all-5.0.2.jar. 

无法再使用 HTTP link 访问 Maven 存储库。您可以阅读更多相关信息 here。 所以基本上,您无法安装该插件,因为该插件已过时并且包含用于从 maven repo 下载依赖项的无效 links。

在解决问题之前,请考虑使用 SpotBug,因为 FindBug 已过时且不再积极维护,有关详细信息,请参阅另一个 中的此处。另外,请记住它仅适用于 JDK8.

如何解决?

要解决此问题,您需要 fiddle 使用插件。

  1. 您需要两个插件 FindBug Libs (org-netbeans-libs-findbugs.nbm) 和 FindBug Integration (org-netbeans-modules-findbugs.nbm)。使用 links:
  2. 下载它们

https://updates.netbeans.org/netbeans/updates/8.2/uc/final/certified/82/extra/org-netbeans-modules-findbugs.nbm

https://updates.netbeans.org/netbeans/updates/8.2/uc/final/certified/82/extra/org-netbeans-libs-findbugs.nbm

  1. 手动解压 org-netbeans-libs-findbugs.nbm,就好像它是一个简单的 zip 文件一样。
  2. 编辑 org-netbeans-libs-findbugs\netbeans\modules\ext 提取文件夹中的文件。在每个文件中,您需要将 link 从 http 更改为 https。
  3. 编辑清单文件 org-netbeans-libs-findbugs\META-INF\MANIFEST.MF。您需要删除所有包含 CRS 校验和的行。编辑后它应该只包含这些行:

    清单版本:1.0 Ant 版本:Apache Ant 1.9.2 创建者:1.8.0_45-b14 (Oracle Corporation)

  4. 删除 org-netbeans-libs-findbugs\META-INF 中的其他两个文件(ORACLE_C.RSA 和 ORACLE_C.SF)。

  5. 再压缩一下。

之后,文件就可以手动安装到 Net Beans 中了。或者,您可以从 here 下载文件。我已经使用步骤修改了插件。

如何安装使用?

  1. 已转到 Windows -> 插件 -> 下载 -> 添加插件
  2. 手动添加修改后的org-netbeans-libs-findbugs.nbm文件,点击安装
  3. 然后添加org-netbeans-modules-findbugs.nbm并点击安装。
  4. 安装的时候显示下载插件,实际上只下载依赖。这可能需要一些时间。
  5. 之后,select你的项目在项目树中,确保它之前编译过。转到 Source -> Inspect,在 Configuration 中选择 FindBus。

  1. 点击检查后,您的报告将准备就绪。 它适用于 NetBeans 11.3 和 8.2。确保您使用的是 JDK8 with NetBeans。我不确定它是否适用于最新版本的 JDK.

这是一个在 11.3 上使用 JDK8 在某些 NetBeans 模块上使用 运行 的示例: