2013-11-04 43 views
13

我一直在争取两天内部的Eclipse错误。我正在运行Eclipse的最新Spring Tool Suite版本,并试图导入现有Maven项目的集合。每当我这样做的时候,Eclipse都抛出一个NullPointerException异常,但是从错误日志视图中没有堆栈跟踪可用。如果我指示Eclipse更新Maven项目(Maven> Update Project),我再次得到一个NullPointerException。这一次,错误日志查看报告以下堆栈跟踪:Eclipse在Maven更新期间抛出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,并且我已经为它们尝试了这些建议,只是为了它,但它们都不起作用。

我在我的智慧'结束这个问题。帮助我,欧比旺克诺比,你是我唯一的希望。

+1

项目已经有Eclipse'.project'和'.classpath'文件吗?你能发布POM的坐标和父节吗? (无论如何,这是一个M2E错误,应该这样提交)。 – chrylis

+0

任何时候我在Eclipse中看到这个(对于Java EE),都是因为我已经安装了M2E而不是[M2E-WTP](http:///www.eclipse.org/m2e-wtp/)。你在Juno看到这个。我猜你并不是在开普勒,而是因为它内置了Maven支持。 – McDowell

回答

2

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

5

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

PS。这似乎是一个已知的bug蚀(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版本;!我使用开普勒的工作,我在行家/春天项目的工作,它工作正常

好运

4

这是我做过什么来解决这个问题:

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

这是因为你的m2e插件已损坏。要纠正下面的步骤。

  1. 关闭Eclipse
  2. 转到您的Eclipse工作区文件夹下的.metadata/pluigns文件夹,找出所有M2E插件
  3. 删除
  4. 复制非损坏工作区的相关插件,无论是从 您机或从你的团队成员中的任何一台机器
  5. 重新启动Eclipse
0

好吧,我在S ame问题与一个更加模糊的原因。

我用pluginExecutionaspectj-maven-plugin及以上的试图解决另一个问题Maven的过程中我已经注释掉<action><execute><execute></action>

这导致nullpointerexception

相关问题