Eclipse在Maven更新期间抛出NullPointerException

我已经和内部的Eclipse内部错误打了两天了。 我正在运行Eclipse的最新Spring Tool Suite版本,我试图导入一系列现有的Maven项目。 每当我这样做时,Eclipse都会抛出NullPointerException,但错误日志视图中没有可用的堆栈跟踪。 如果我指示Eclipse更新Maven项目(Maven> Update Project),我会再次获得NullPointerException。 这次,错误日志视图报告以下堆栈跟踪:

java.lang.NullPointerException at org.eclipse.wst.common.componentcore.internal.resources.VirtualResource.getProjectRelativePaths(VirtualResource.java:119) at org.eclipse.wst.common.componentcore.internal.resources.VirtualFile.getUnderlyingFiles(VirtualFile.java:104) at org.eclipse.wst.common.componentcore.internal.resources.VirtualFile.getUnderlyingResources(VirtualFile.java:93) at org.eclipse.wst.common.componentcore.internal.resources.VirtualResource.exists(VirtualResource.java:88) at org.eclipse.jst.common.internal.modulecore.util.ManifestUtilities.getNonBinaryComponentManifest(ManifestUtilities.java:124) at org.eclipse.jst.common.internal.modulecore.util.ManifestUtilities.getManifest(ManifestUtilities.java:81) at org.eclipse.jst.common.internal.modulecore.util.ManifestUtilities.getManifestClasspath(ManifestUtilities.java:147) at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getManifestClasspath(J2EEModuleVirtualComponent.java:248) at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.calculateManifestReferences(J2EEModuleVirtualComponent.java:368) at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.cacheManifestReferences(J2EEModuleVirtualComponent.java:360) at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.java:176) at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.java:214) at org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.java:207) at org.eclipse.m2e.wtp.WebProjectConfiguratorDelegate.configureClasspath(WebProjectConfiguratorDelegate.java:386) at org.eclipse.m2e.wtp.WTPProjectConfigurator.configureClasspath(WTPProjectConfigurator.java:107) at org.eclipse.m2e.jdt.internal.DefaultClasspathManagerDelegate.populateClasspath(DefaultClasspathManagerDelegate.java:61) at org.eclipse.m2e.jdt.internal.BuildPathManager.getClasspath(BuildPathManager.java:253) at org.eclipse.m2e.jdt.internal.BuildPathManager.getClasspath(BuildPathManager.java:363) at org.eclipse.m2e.jdt.internal.BuildPathManager.getClasspath(BuildPathManager.java:343) at org.eclipse.m2e.jdt.internal.BuildPathManager.getClasspath(BuildPathManager.java:371) at org.eclipse.m2e.jdt.internal.BuildPathManager.updateClasspath(BuildPathManager.java:191) at org.eclipse.m2e.jdt.internal.BuildPathManager.mavenProjectChanged(BuildPathManager.java:180) at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.notifyProjectChangeListeners(ProjectRegistryManager.java:746) at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.applyMutableProjectRegistry(ProjectRegistryManager.java:865) at org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager.refresh(ProjectRegistryManager.java:289) at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration0(ProjectConfigurationManager.java:369) at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager$2.call(ProjectConfigurationManager.java:316) at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager$2.call(ProjectConfigurationManager.java:1) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:161) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:137) at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:89) at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:1301) at org.eclipse.m2e.core.internal.project.ProjectConfigurationManager.updateProjectConfiguration(ProjectConfigurationManager.java:313) at org.eclipse.m2e.core.ui.internal.UpdateMavenProjectJob.runInWorkspace(UpdateMavenProjectJob.java:77) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53) 

这是我尝试过的:

  • 我已经吹走了我的工作区并创建了一个新工作区。 多次。
  • 我已经吹走了我的Maven存储库,以便重新创建它。
  • 我重新安装了Spring Tool Suite。
  • 我试过要求Eclipse更新Maven存储库。
  • 我在本地SVN存储库中检查了合并冲突。 (没有;这是一个新的分支,从主干新鲜检查。)
  • 我已经检查了Eclipse中的Synchronize视图,看它是否注意到任何差异。 (Eclipse无法识别任何可用于同步的项目。)
  • 我在Google上搜索了VirtualResource.getProjectRelativePaths()中发生的NullPointerExceptions。 我在其他非常相似的地方找到了NullPointerExceptions,我已经尝试过针对它们的建议,只是为了它,但它们都不起作用。

这个问题让我很有智慧。 帮助我,欧比旺克诺比,你是我唯一的希望。

我非常确定这个问题与maven插件无关; 但如果是的话,如果你运行mvn eclipse:eclipse我会徘徊mvn eclipse:eclipse在将项目导入mvn eclipse:eclipse之前,如果你这样做并且你正在使用maven 3,我已经检查过maven插件不能正常支持maven 3; 所以我鼓励你做一个mvn eclipse:clean ,然后将项目导入为现有项目,之后激活eclipse中的maven插件性质。 我希望它有所帮助,

PS。 它似乎是一个知道的日食错误( https://www.google.com.uy/search?q=j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.java&oq=j2ee.componentcore.J2EEModuleVirtualComponent.getReferences(J2EEModuleVirtualComponent.java&aqs=chrome) ..69i57.128j0j7&sourceid = chrome&espv = 210&es_sm = 91&ie = UTF-8) ;尝试下载最后一个eclipse版本;我正在使用kepler工作,我正在使用maven / spring项目,它工作正常。

祝你好运!

这是我做的修复它:

  1. 从工作区中删除了项目
  2. 删除.classpath.project.settings文件夹
  3. 重新import该项目

正如echinelli指出的那样,这确实是一个Eclipse(或STS)错误,但安装最新版本并不是解决方法,因为我已经安装了该版本。 我已经安装了基于Eclipse 4.x的STS; 当我卸载它并转到3.x版本时,问题就消失了。

发生这种情况是因为您的m2e插件已损坏。 要纠正,请按照以下步骤操作。

  1. 近食
  2. 转到eclipse工作区文件夹在.metadata / pluigns文件夹下,标识所有m2e插件
  3. 删除它们
  4. 从您的计算机或任何一个团队成员计算机上复制来自未损坏工作空间的相关插件
  5. 重启日食

好吧,我有一个更隐晦的原因同样的问题。

我使用了pluginExecution for aspectj-maven-plugin并尝试修复另一个maven问题,我已经注释掉了

这导致了nullpointerexception