如何修复错误“更新 Maven 项目”。不支持的 IClasspathEntry kind=4?

Posted

技术标签:

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

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

"Updating Maven Project". Unsupported IClasspathEntry kind=4

有解决办法吗?

【问题讨论】:

命令行构建是否有效?哪个 Maven 版本? 我有同样的问题,我无法通过这个答案来解决问题,你能看看***.com/questions/12049566/… 【参考方案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,那么:

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

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

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

【讨论】:

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

    右键单击您的项目,选择 Maven -> 删除 Maven Nature。

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

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

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

【讨论】:

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

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

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

【讨论】:

都试过了,一直说“Maven 依赖管理问题”或“NullPointerException” 保持冷静并重新开始撤消重复 Java 曾经对你做过什么? @EvilWashingMachine 没什么不好的。只是想找个借口来证明使用时间机器的合理性 保持冷静,用vim+终端【参考方案4】:

    确保您正在运行的 m2e(clipse) 插件的版本至少为 1.1.0

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

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

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

【讨论】:

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

你试过了吗:

    如果你有导入​​项目到eclipse 4,请删除。 在 maven consol 中,运行:mvn eclipse:clean 在 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 中刷新项目或重新导入。

【讨论】:

以上是关于如何修复错误“更新 Maven 项目”。不支持的 IClasspathEntry kind=4?的主要内容,如果未能解决你的问题,请参考以下文章

如何修复此错误:不支持 SQL92?

如何修复 Angular Firestore 中不支持的字段值错误?

如何修复 Visual Studio Code 中的“错误:不支持观看远程文件”问题

尝试使用 websockets 从 FastAPI 获取实时数据流时如何修复错误(不支持的升级请求。)?

如何修复 - 请求的资源不支持 http 方法“POST”

如何修复 RuntimeError:dlpack 不支持 Bool 类型