web-dev-qa-db-ja.com

Mavenの更新中にEclipseがNullPointerExceptionをスローする

私は2日間、内部の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の[同期]ビューをチェックして、相違点があるかどうかを確認しました。 (Eclipseは、同期可能なプロジェクトを認識するのに十分な距離になりません。)
  • VirtualResource.getProjectRelativePaths()で発生するNullPointerExceptionsをGoogleで検索しました。他の非常によく似た場所でNullPointerExceptionsを見つけて、それらの推奨事項を試してみましたが、結局は機能しません。

私はこの問題で頭が痛い。オビ=ワン・ケノービ、私を助けてください。あなたは私の唯一の希望です。

14

Echinelliが示したように、これはEclipse(またはSTS)のバグであることが判明しましたが、最新バージョンをインストールすることは、私がすでにそのバージョンをインストールしているため、修正ではありません。私はEclipse 4.xに基づいてSTSをインストールしました。それをアンインストールして3.xバージョンに移行すると、問題は解消しました。

2

私は問題がMavenプラグインに関連していないことを強く確信しています。もしそうなら、あなたがmvn Eclipse:eclipseプロジェクトをEclipseにインポートする前に、それを行ってMaven 3を使用している場合、MavenプラグインがまだMaven 3を適切にサポートしていないことを確認しました。ですから、mvn Eclipse:clean、次にプロジェクトを既存のプロジェクトとしてインポートし、その後、EclipseからMavenプラグインネイチャーをアクティブ化します。それが役に立てば幸い

PS。 Eclipseの既知のバグのようです( 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プロジェクトで作業しており、それは正常に動作します。

幸運を!

5
echinelli

これは私がそれを修正するためにしたことです:

  1. ワークスペースからプロジェクトを削除しました
  2. 削除する .classpath.projectおよび.settingsフォルダ
  3. プロジェクトを再インポートする
4
genjosanzo

これは、m2eプラグインが破損しているために発生します。修正するには、以下の手順に従ってください。

  1. 日食を閉じる
  2. .metadata/pluignsフォルダーの下のEclipseワークスペースフォルダーに移動し、すべてのm2eプラグインを特定します。
  3. それらを削除する
  4. マシンまたはチームメンバーのマシンのいずれかから、破損していないワークスペースから関連するプラグインをコピーする
  5. eclipseを再起動します
2
Arif Bava

わかりました、私にはもっと曖昧な理由で同じ問題がありました。

私はaspectj-maven-pluginpluginExecutionを使用し、コメントアウトしたもう1つのMavenの問題を修正する過程で<action><execute><execute></action>を使用しました

これはnullpointerexceptionにつながります。

0
Marc

POMに「maven-compiler-plugin」アーティファクトを含む<build>セクションを追加することで解決しました。これがないと、EclipseがJava.lang.NullPointerExceptionをスローしたことに気付きました。

0
Dino