2013-11-04 54 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

相關問題