在最近从Ant转换为Maven之后,在Eclipse准备启动项目的同时,在Maven之前立即启动的运行配置会占用过多的时间并消耗异常数量的资源。
Eclipse显示此状态消息:
Verifying launch attributes...
完成57%后,Eclipse会在最终启动运行配置之前挂起几分钟。一旦启动,该项目运行良好,没有问题。
我发现this blog article建议清理本地工作区,但这并没有解决问题,特别是考虑到作者正在使用Git而我不是。
我只使用最新的m2e maven插件,最新版本的Eclipse。
是什么导致Eclipse在启动这些运行配置时阻止,以及如何解决它?
我有同样的症状。我可以通过调整来修复它
Eclipse -> Preferences -> Maven -> User Settings
我的maven用户设置文件存储在远程文件夹中。将文件移动到本地磁盘后,测试现在立即重新开始。
我知道这是一个相当古老的问题,但我已经有一段时间没有这个问题了,在网上找到的解决方案似乎都没有用:
我最终发现(不知何故)你的工作区中有重复的.classpath文件会导致严重的问题。导入多模块maven项目时,您可以通过导入所有模块和主模块(pom型模块)轻松完成此操作。这样做,你有效地导入了两次。在Eclipse中关闭这个主模块为我解决了这个问题。另一个解决方法是不依赖m2eclipse并使用mvn eclipse:eclipse然后将项目导入为“现有项目”。
这可能是由项目的.classpath
文件中的重复/错误条目引起的。这些条目不是必需的,因为maven插件将负责正确设置类路径以启动项目。
要防止Eclipse挂起,请打开所有引用项目的.classpath
文件,这些文件应位于项目的根目录中。
删除所有将src
作为其kind
属性值的条目。
例如:
<classpathentry kind="src" path="src"/>
删除所有这些条目后,Eclipse将立即启动您的项目。
不幸的是,Eclipse中启动的进度信息不是很准确。 57%的值是所有辛勤工作发生的地方(参见例如bug 354338)。
如果要启动Eclipse Application或JUnit Plug-in Tests,请确保在目标平台中具有以下插件:
否则,Eclipse将为这些插件搜索整个p2缓存(在我的情况下,超过6000个插件罐,需要> 5分钟)。
我发现这种方法可以避免在Eclipse-Luna-SR2中“验证启动属性... 57%”
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
对于2018-12的eclipse,我在主要类或junit测试的每个开始时都有“57%,验证启动属性”的延迟大约10秒。我使用Windows工具“procMon”来识别在此期间我在类路径中没有的大约500,000次访问罐子的失败。我在我使用的许多罐子的Manifest“Class-Path”条目中找到了那些jar引用。从所有罐子中删除Class-Path条目后,延迟现在只有1秒!
一些罐子签了名。然后我不得不从jar中删除签名文件(META-INF/*.SF|*.DSA|*.RSA|*.EC
)。