【问题标题】:How to fix error "Updating Maven Project". Unsupported IClasspathEntry kind=4?如何修复错误“更新 Maven 项目”。不支持的 IClasspathEntry kind=4?
【发布时间】:2012-05-20 20:04:56
【问题描述】:

我在 STS 中导入了 maven 项目,当我运行更新更新项目时收到:

"Updating Maven Project". Unsupported IClasspathEntry kind=4

有解决办法吗?

【问题讨论】:

标签: eclipse maven m2eclipse eclipse-wtp


【解决方案1】:

此问题已在 m2e 1.5.0 中得到修复,可用于 Eclipse Kepler (4.3) 和 Luna (4.4)

请看https://bugs.eclipse.org/bugs/show_bug.cgi?id=374332#c14

问题是由于 STS(Spring IDE/Eclipse)以及 Eclipse 和其他基于 Eclipse 的 IDE 使用 m2e(clipse) 插件但 eclipse:eclipse 可能已在项目上运行。当 m2e 遇到“var”.classpath 条目时,它会抛出此错误。

更新站点在以下网址中指定:
http://eclipse.org/m2e/m2e-downloads.html

如果您因任何原因无法使用 m2e 1.5.0,那么:

  1. 禁用项目的 maven 特性(通过右键菜单)

  2. 运行 mvn eclipse:clean(当您的项目在 STS/eclipse 中打开时)。根据时间的不同,您可能需要在重新启用 Maven 特性之前对项目进行一两次刷新。您应该能够看到您的项目已经失去了它的 Maven 特性。 (eclipse:clean 目标只是删除了.project.classpath.settings/ 文件/目录。您也可以只删除这些文件(再次在项目打开时)而不是运行@ 987654329@.)

  3. 重新启用 Maven 自然。
    (大多数情况下,这可以通过在包资源管理器窗格中右键单击相关项目,然后选择“配置”->“转换为 Maven 项目”来完成)

【讨论】:

  • 我不得不尝试两次才能让它工作。我第一次尝试时,“var”又爬回了 .classpath 文件。我用 mvn eclipse:eclipse 重新生成了文件并再次尝试。第二次成功了。
  • 这可能有助于从 .classpath 文件中手动删除所有 classpathentry 并将 kind 属性设置为 var
  • 它对我有用,但我必须在重新启用 Maven 特性之前进行额外的“刷新”(实际上在我的情况下是“配置为 Maven 项目”,因为它是一个多面项目)跨度>
  • 我认为你把 Eclipse 版本弄错了:Eclipse Kepler 是 4.3 而 Luna 是 4.4
【解决方案2】:
  1. 右键单击您的项目,选择 Maven -> 删除 Maven Nature。

  2. 打开终端,进入项目文件夹并执行mvn eclipse:clean

  3. 右键单击您的项目并选择“配置 -> 转换为 Maven 项目”

现在“Unsupported IClasspathEntry kind=4 Eclipse Scala”消失了。

【讨论】:

  • 谢谢。只是给其他人的便条,它是mvn eclipse:clean,而不是mvn clean(我没有密切注意就被愚弄了)。
  • 好的。在将项目导入开普勒后,我从 cmd 行创建了 src/java。就是这样。
【解决方案3】:

有时,即使重新导入 Maven 项目也不起作用。在 Eclipse 中正确更新项目不是一个确定性的过程。 我发现的唯一 100% 故障安全程序是:

  1. 禁用 Maven Nature,运行 mvn eclipse:clean,重启,交叉手指,祈祷 3 次。
  2. 如果这不起作用,请删除项目,运行mvn eclipse:clean,重新导入刷新,祈祷并使用武力
  3. 如果这仍然不起作用,请重新启动 Eclipse,或者更好地使用您的计算机。在等待重启期间,您可以随机捐赠来修复您的 Karma。重复步骤 2,不要忘记祈祷并控制你的愤怒。愤怒导致仇恨。仇恨导致痛苦。
  4. 尝试此线程中发布的所有其他答案。在放弃之前,您可能需要至少尝试 3 次。
  5. 格式化您的计算机,重新安装 Eclipse 和 Maven。不用再祈祷了,反正所有的神都恨你
  6. 删除您的 git 项目,刻录存储远程存储库的物理驱动器,然后从头开始编写您的项目。
  7. 找一台时光机,穿越到过去,说服自己从事另一个非编程职业,或者至少避免使用 Java

【讨论】:

  • 都试过了,一直说“Maven 依赖管理问题”或“NullPointerException”
  • 保持冷静并重新开始撤消重复
  • Java 曾经对你做过什么?
  • @EvilWashingMachine 没什么不好的。只是想找个借口来证明使用时间机器的合理性
  • 保持冷静,用vim+终端
【解决方案4】:
  1. 确保您正在运行的 m2e(clipse) 插件的版本至少为 1.1.0

  2. 关闭maven项目-右键“关闭项目”

  3. 手动删除 .classpath 文件中所有 kind="var" 的类路径条目
  4. 打开项目

  1. 删除 maven 项目
  2. 手动 rmeove .classpath 4 重新导入项目

【讨论】:

  • @Marco 所述的错误与 STS 无关。这是一个普遍的m2e问题。禁用 Maven 特性,删除 .classpath 文件,重新启用 Maven 特性。
【解决方案5】:

你试过了吗:

  1. 如果你有导入​​项目到eclipse 4,请删除。
  2. 在 maven consol 中,运行:mvn eclipse:clean
  3. 在 Eclipse 4 中:文件 -> 导入 -> Maven -> 现有 Maven 项目

【讨论】:

  • 在执行此操作之前,请确保之前没有在项目上运行过 maven eclipse 插件。 mvn eclipse:clean 会在需要时修复它。
  • 这在 Juno 中对我来说效果更好。我在Eclipse中删除了项目,然后重新导入。
  • 在 Eclipse Kepler 中无效
【解决方案6】:

查看所有其他答案。我为我找到了一种更简单的方法。

我刚刚删除了 .classpath 中包含 var 的所有行(使用 eclipse 编辑)并使用了 maven -> update project 没有错误。

【讨论】:

  • 这对我有用,还需要删除包含 maven jar 的“jar”行。
【解决方案7】:

如果在使用 Clover 检测代码覆盖率的项目中使用更新命令,也会引发此错误。

在这种情况下解决: 取消仪器您要更新的项目文件夹。 运行 maven 更新,然后再次检测代码覆盖率。

【讨论】:

    【解决方案8】:

    我尝试了 Marco 的步骤,但没有运气。相反,如果您只是从他提供的链接中获取最新的 m2e 插件,并一一右键单击每个项目 -> Maven -> 更新依赖项,错误仍然会弹出,但问题已解决。也就是说,警告在标记视图中消失了。我在将一些项目导入 SpringSource Tool Suite (STS) 后遇到了这个问题。当我返回我的 Eclipse Juno 安装时,正在显示警告。看到我已经安装了 m2e 1.1,我尝试了 Marco 的步骤,但无济于事。但是,获取最新版本已修复它。

    【讨论】:

    • 谢谢,编辑了我的答案以强调您应该获得最新版本,而不仅仅是当时最新版本的 1.1.0。
    • 如果您使用 Eclipse MarketPlace 而不是通过外部站点下载,您将始终获得最新版本。
    【解决方案9】:

    我无法让 mvn eclipse:clean 等与 Kepler 一起工作。

    但是,我将创建和扩展变量更改为仅在 Eclipse 类路径中使用外部 jar。这反映在我的 .classpath 中没有 var。

    这解决了问题。我能够进行 Maven 更新。

    【讨论】:

      【解决方案10】:

      这个问题 (https://bugs.eclipse.org/394042) 已在 m2e 1.5.0 中得到修复,该 p2 repo 可用于 Eclipse Kepler 和 Luna:

      http://download.eclipse.org/technology/m2e/releases/1.5

      如果您还使用 m2e-wtp,您还需要安装 m2e-wtp 1.1.0:

      http://download.eclipse.org/m2e-wtp/releases/luna/1.1

      【讨论】:

      • 第一个链接产生“很抱歉,找不到页面或文件。以下是一些原因...”
      • 原因 #1 适用于此:这是一个 Eclipse 更新站点/p2 存储库;您必须从 Eclipse 访问它(请参阅help.eclipse.org/luna/index.jsp?topic=//…)。
      【解决方案11】:

      从 Kepler 升级到 Luna 对我有用。

      我刚刚为 Java 1.8 支持添加了一些组件。似乎它们不像我想要的那样兼容,或者我混合了错误的。确实带来了很多问题。尝试更新系统报告错误,因为它们无法满足某些依赖项。 Maven 升级不起作用。尝试了很多东西。

      因此,如果没有理由避免升级,只需将 luna 存储库添加到可用的软件站点 (Luna http://download.eclipse.org/releases/luna/) 并“检查更新”即可。最好让所有组件都具有相同的版本,并且有一些不错的新功能。

      【讨论】:

        【解决方案12】:

        我尝试了此处提到的所有步骤以及类似的问题,但无法解决此问题。我既不能解决问题也不能更新我的 m2eclipse。所以我安装了 Eclipse Luna,它解决了我的问题……尽管这意味着我必须花费大约 45 分钟来配置我工作区中的所有环境。

        【讨论】:

          【解决方案13】:

          试试 DOS 命令提示符上的 mvn clean install eclipse:eclipse -Dwtpversion=2.0 命令。 建议你,因为它对我有用!

          【讨论】:

            【解决方案14】:

            我正在使用带有 M2E 1.4.x 的 Eclipse 4.3.2 (Kepler) 并且多次遇到这个问题!

            在我的例子中,“mvn eclipse:eclipse”命令还会生成 Checkstyle、PMD 和 Findbugs 配置,因此“mvn eclipse:clean”对我没有帮助,因为它会再次删除所有这些配置文件。

            对我来说最好的解决方案是删除所有“.classpath”文件:

            find . -name ".classpath" -delete
            

            然后将项目导入eclipse。

            【讨论】:

              【解决方案15】:

              在导入项目之前,应该先转换成eclipse项目 mvn 日食:日食 然后我发现了以下错误。 在“导入 Maven 项目”期间发生内部错误。不支持的 IClasspathEntry kind=4

              M2E 无法识别并因此引发错误的值 kind = "var" 在哪里。

              现在输入这个。 mvn eclipse: 干净

              现在在 eclipse 中刷新项目或重新导入。

              【讨论】:

                猜你喜欢
                • 2013-02-10
                • 2014-09-18
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-08-07
                • 2014-11-12
                • 1970-01-01
                相关资源
                最近更新 更多