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


412

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

"Updating Maven Project". Unsupported IClasspathEntry kind=4

有没有解决方法?


命令行上的构建有效吗?哪个Maven版本?
khmarbaise 2012年

我有同样的问题,我不能够通过这个答案上悬而未决,你可以请参阅stackoverflow.com/questions/12049566/...
与Hemant Metalia

Answers:


613

此问题已在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条目时,它将引发此错误。

在以下URL中指定了更新站点: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/文件/目录。你也可以删除这些文件(再次,而该项目是开放的),而不是运行的mvn eclipse:clean。)

  3. 重新启用Maven性质。
    (通常,可以通过在包资源管理器窗格中右键单击有问题的项目,然后选择“配置”->“转换为Maven项目”来完成此操作)


3
我必须尝试两次才能使其正常工作。我第一次尝试将“ var”爬回.classpath文件。我使用mvn eclipse:eclipse重新生成了文件,然后重试。它第二次工作了。
迪帕克·巴拉

1
classpathentrykind属性设置为的所有.classpath文件手动删除可能会有所帮助var
Puigcerber

31
它对我有用,但是在重新启用Maven本质之前,我必须做一个额外的“刷新”(实际上在我的案例中是“ Configure as Maven Project”,因为它是一个多面项目)
Stuart Watt,2012年


2
我认为您错了Eclipse版本:Eclipse Kepler是4.3,Luna是4.4
vogella 2014年

63
  1. 右键单击您的项目,选择Maven-> Remove Maven Nature。

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

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

现在,您看到“ Unsupported IClasspathEntry kind = 4 Eclipse Scala”消失了。


5
谢谢你 只是给其他人的便条mvn eclipse:clean,不是,mvn clean(我因为不专心致志而上当了)。
Jin Kim

好。将项目导入开普勒后,我已经从cmd行创建了src / java。就是这样。
Zbyszek

43

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

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

3
尝试了所有内容,继续说“ Maven依赖管理问题”或“ NullPointerException”
srirachapills 2014年

1
保持冷静并重新开始撤消重复
yannicuLar 2014年

1
Java对您做了什么?
邪恶的洗衣机

2
@EvilWashingMachine真的没什么不好..只是试图编造借口使用时光机辩解
yannicuLar

1
保持冷静并使用vim +终端
Pratik Singhal

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

  2. 关闭Maven项目-右键单击“关闭项目”

  3. 在.classpath文件中手动删除所有带有kind =“ var”的classpathentry
  4. 公开项目

要么

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

如@Marco所述,该错误与STS无关。这是一个一般的m2e问题。禁用Maven性质,删除.classpath文件,然后重新启用Maven性质。
sbzoom 2012年

6

你有没有尝试过:

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

1
在执行此操作之前,请确保以前未在项目上运行过maven eclipse插件。mvn eclipse:clean将在需要时对其进行修复。
AChoice 2012年

3
在Juno中,这对我来说效果更好。我在Eclipse中删除了项目,然后重新导入了。
cs94njw 2013年

在Eclipse开普勒无影响
Zbyszek

3

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

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


这对我有用,还需要删除包含Maven jar的“ jar”行。
dwjohnston 2015年

2

如果在使用Clover进行代码覆盖的项目上使用update命令,也会引发此错误。

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


0

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


1
谢谢,编辑我的回答以强调您应该获取最新版本,而不仅仅是当时的最新版本1.1.0。
马可(Marco)

如果您使用Eclipse MarketPlace而不是通过外部站点下载,则将始终获得最新版本。
2014年

0

我无法让mvn eclipse:clean等与Kepler一起使用。

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

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


0

这个问题(https://bugs.eclipse.org/394042)已在m2e 1.5.0中修复,该m2e 1.5.0可从此p2存储库中用于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


firts链接显示“很抱歉,无法找到页面或文件。这是为什么...的某些原因。”
JaroslavZáruba2014年

原因1适用于此处:这是Eclipse Update网站/ p2存储库;您必须从Eclipse访问它(请参阅help.eclipse.org/luna/index.jsp?topic=//…)。
Fred Bricon 2014年

0

从开普勒升级到露娜对我有用。

我刚刚添加了一些Java 1.8支持组件。似乎它们不符合我的意愿,或者我混合了错误的东西。确实造成了很多问题。尝试更新系统时报告了错误,因为它们无法满足某些依赖性。Maven升级无效。尝试了很多东西。

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


0

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


0

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


0

我将Eclipse 4.3.2(Kepler)与M2E 1.4.x结合使用,并多次遇到此问题!

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

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

find . -name ".classpath" -delete

然后将项目导入eclipse。


0

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

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

现在输入。MVN Eclipse:干净

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.