在 Eclipse 版本上安装 PMD 时出错:2020-06 (4.16.0)

Error installing PMD on Eclipse Version: 2020-06 (4.16.0)

我最近升级到 Eclipse 版本:2020-06 (4.16.0) Windows 10。

我的 java 版本是“14.0.1” 2020-04-14

升级后,我尝试从市场(帮助/Eclipse 市场等)安装Eclipse-PMD 2.0。 ..我收到错误:

Cannot complete the install because some dependencies are not satisfiable Software being installed: a.jre.javase 14.0.0 Software being installed: Eclipse PMD Plug-in 2.0.0.202006052026 (ch.acanda.eclipse.pmd.feature.feature.group 2.0.0.202006052026)
Cannot satisfy dependency: From: Eclipse PMD Plug-in 2.0.0.202006052026 (ch.acanda.eclipse.pmd.feature.feature.group 2.0.0.202006052026) To: org.eclipse.equinox.p2.iu; ch.acanda.eclipse.pmd.java.feature.feature.group [2.0.0.202006052026,2.0.0.202006052026] Cannot satisfy dependency: From: eclipse-pmd Java 2.0.0.202006052026 (ch.acanda.eclipse.pmd.java 2.0.0.202006052026) To: osgi.ee; (&(osgi.ee=JavaSE)(version=11)) Cannot satisfy dependency: From: eclipse-pmd Java Support (Optional, JDT Prerequisite) 2.0.0.202006052026 (ch.acanda.eclipse.pmd.java.feature.feature.group 2.0.0.202006052026) To: org.eclipse.equinox.p2.iu; ch.acanda.eclipse.pmd.java [2.0.0.202006052026,2.0.0.202006052026]

有没有人对问题的根源有想法...如果所有其他方法都失败了,我可以尝试从 github 存储库构建 PMD 源(https://github.com/eclipse-pmd/eclipse-pmd ) 但我无法想象为什么这是必要的。

您需要 运行 Eclipse 和 Java 11 JRE。这通常是通过确保将 JAVA_HOME 设置为 Java 11,并在路径中设置 JAVA_HOME 来完成的。或者,您可以修改 eclipse.ini 并指定 Java 11 作为 vm (How to run Eclipse with different Java version?).

我创建了 eclipse-pmd,我可以使用 Java 14 和 Eclipse 2020-06 从市场安装 eclipse-pmd 2.0,没有任何问题。

从您提供的错误消息来看,似乎缺少两个依赖项:

  1. ch.acanda.eclipse.pmd.java 需要 (&(osgi.ee=JavaSE)(version=11))
  2. 几个插件需要 org.eclipse.equinox.p2.iu 和 ch.acanda.eclipse.pmd.java

第一个问题表明您没有使用 Java 11+ 的 运行 Eclipse。通过打开 "Installation Details" 对话框检查 Java 版本:Help > About Eclipse IDE > Installation Details > Configuration。然后寻找系统属性java.version。如果显示版本低于11,那么你需要configure Eclipse to run with Java 11+.

第二个问题看起来像是后续错误。由于无法安装ch.acanda.eclipse.pmd.java,所有依赖该插件的插件也无法安装。为什么 org.eclipse.equinox.p2.iu 在错误消息中也提到了我不清楚,因为 eclipse-pmd 不(直接)依赖于这个插件,它应该是 Eclipse 中默认安装的插件。

如果这不能解决您的问题,请在 Github 上打开一个 new issue,因为在 Github 上比在 Stack Overflow 上更容易帮助解决此类问题。