为什么Eclipse在启动运行配置时以“验证启动属性...”状态挂起57%?

问题描述 投票:20回答:7

在最近从Ant转换为Maven之后,在Eclipse准备启动项目的同时,在Maven之前立即启动的运行配置会占用过多的时间并消耗异常数量的资源。

Eclipse显示此状态消息:

Verifying launch attributes...

完成57%后,Eclipse会在最终启动运行配置之前挂起几分钟。一旦启动,该项目运行良好,没有问题。

我发现this blog article建议清理本地工作区,但这并没有解决问题,特别是考虑到作者正在使用Git而我不是。

我只使用最新的m2e maven插件,最新版本的Eclipse。

是什么导致Eclipse在启动这些运行配置时阻止,以及如何解决它?

java eclipse maven m2e
7个回答
15
投票

我有同样的症状。我可以通过调整来修复它

Eclipse -> Preferences -> Maven -> User Settings

我的maven用户设置文件存储在远程文件夹中。将文件移动到本地磁盘后,测试现在立即重新开始。


2
投票

我知道这是一个相当古老的问题,但我已经有一段时间没有这个问题了,在网上找到的解决方案似乎都没有用:

我最终发现(不知何故)你的工作区中有重复的.classpath文件会导致严重的问题。导入多模块maven项目时,您可以通过导入所有模块和主模块(pom型模块)轻松完成此操作。这样做,你有效地导入了两次。在Eclipse中关闭这个主模块为我解决了这个问题。另一个解决方法是不依赖m2eclipse并使用mvn eclipse:eclipse然后将项目导入为“现有项目”。


2
投票

这可能是由项目的.classpath文件中的重复/错误条目引起的。这些条目不是必需的,因为maven插件将负责正确设置类路径以启动项目。

要防止Eclipse挂起,请打开所有引用项目的.classpath文件,这些文件应位于项目的根目录中。

删除所有将src作为其kind属性值的条目。

例如:

<classpathentry kind="src" path="src"/>

删除所有这些条目后,Eclipse将立即启动您的项目。


2
投票

不幸的是,Eclipse中启动的进度信息不是很准确。 57%的值是所有辛勤工作发生的地方(参见例如bug 354338)。

如果要启动Eclipse Application或JUnit Plug-in Tests,请确保在目标平台中具有以下插件:

  • org.junit
  • org.eclipse.jdt.junit.runtime
  • org.eclipse.jdt.junit4.runtime
  • org.eclipse.pde.junit.runtime

否则,Eclipse将为这些插件搜索整个p2缓存(在我的情况下,超过6000个插件罐,需要> 5分钟)。


0
投票

我发现这种方法可以避免在Eclipse-Luna-SR2中“验证启动属性... 57%”

  1. 拥有不同项目中的启动配置和主类
  2. 从启动配置中删除以下行: <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>

0
投票

对于2018-12的eclipse,我在主要类或junit测试的每个开始时都有“57%,验证启动属性”的延迟大约10秒。我使用Windows工具“procMon”来识别在此期间我在类路径中没有的大约500,000次访问罐子的失败。我在我使用的许多罐子的Manifest“Class-Path”条目中找到了那些jar引用。从所有罐子中删除Class-Path条目后,延迟现在只有1秒!

一些罐子签了名。然后我不得不从jar中删除签名文件(META-INF/*.SF|*.DSA|*.RSA|*.EC)。


0
投票

产生巨大差异的一件事是如何告诉Eclipse您要运行哪些测试。

指定项目名称时,我们的测试可能需要5分钟以上才能被发现(57%)。

如果我们宁愿指定包含测试源文件的目录,那么我们的时间不到30秒。

Eclipse Run config to specify which tests must be run

© www.soinside.com 2019 - 2024. All rights reserved.