「Mavenプロジェクトの更新」中に内部エラーが発生しました。java.lang.NullPointerException


91

Java EE Webプロジェクトを開発しています。依存関係を追加しようとすると、このエラーメッセージが表示されます。私はEclipse Keplerを使用しています。

「Mavenプロジェクトの更新」中に内部エラーが発生しました。java.lang.NullPointerException

私たちを手伝ってくれますか?ありがとうございました。

ここに画像の説明を入力してください


1
日食を使っていますか?スタックトレース全体を投稿できますか?「エラーログ」ビューで確認できます。
Pablo Lascano 2013年

ワークスペースフォルダーの.metadataをクリアすると、これを解決できます。ただし、ワークスペースの構成は失われます。=(
フェルナンドゴメス

回答:


152

私はプロジェクトの.settingsフォルダーと.projectファイルを削除してからプロジェクトを再インポートすることで解決しました。


4
私は多くのことを試しました、そしてそれをしてくれたのは.settingsフォルダーでした。
サイモン、2014年

これは役に立ちました!ただし、ワークスペース解決を使用して同じワークスペース内のプロジェクトへのいくつかのpom依存関係を解決していたため、ワークスペース解決を無効にしてから、Maven Natureを無効にしてから、プロジェクトでMavenを再度有効にする必要がありました。
mcolley73 2014

1
Jep、それは私のために働いた、それはまた私がもう持っていない(それが更新された)Google App Engineバージョンを参照していたようだ
Dieter Hubau 14

また、再インポートする前にEclipseを再起動する必要がありました。
rakmoh

すべての.settingsファイルを削除するだけで解決し、Eclipseの前に閉じました。次に、Mavenの更新を実行しました。
isma.imc 16

25

私にとっては、ユーザーManeesh GodboleがCodeRanchで見つけた答えを使用しました :

  1. 日食を閉じます。
  2. 「workspace」フォルダに移動します
  3. 隠しファイルを表示するOSの設定がオンになっていることを確認します
  4. .metadataディレクトリを特定して削除する
  5. 日食を再開する
  6. プロジェクトをインポート

1
これが私にとって有効な唯一の答えでした。起動時に.settingsと.projectエンティティが再作成されていたため、メタデータフォルダーを削除するまで同じ問題が発生していました。+1&thx!
マークW

私は:-)を助けたことがうれしい@MarkW
うなぎリー

私にとってはうまくいきましたが、すべてのワークスペースを再構成する必要がありました。=(
フェルナンドゴメス

それは日食のすべての私の設定を削除します。レイアウト、パースペクティブ、色はすべてなくなりました。
Umut

6

私のモジュールの1つで同じ問題が発生しました。

console / cmdで「mvn eclipse:eclipse」を実行すると、問題が解決しました。


3

この問題の例では、 pom.xmlは、m2e固有のライフサイクルマッピング構成を含むファイルがありました。

<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.eclipse.m2e</groupId>
            <artifactId>lifecycle-mapping</artifactId>
            <version>1.0.0</version>
            <configuration>
                <lifecycleMappingMetadata>
...

<version>1.0.0</version>役割はありませんでした。Maven-> Update Project ...を実行すると、スタックトレースなしで報告されたNullPointerExceptionが発生します。新しいインポートを使用すると...->既存のMavenプロジェクトでも同じ例外が発生しましたが、スタックトレースが原因で上記が見つかりました。

(これは、Eclipse Luna Service Release 2(4.4.2)のm2e 1.6.1.20150625-2338で発生します。)


1
これが私に当てはまりました。記述された問題には多くの異なる原因があると思います。
Aleksandr Erokhin 2016

2

誰かに役立つ場合は、削除.settingsとに加えて、プロジェクトを正常にEclipseにインポートする前に.project、削除する必要が.classpathあり.factorypathました。


1

org.eclipse.m2e.core.prefsファイルは.settingsフォルダーにあります。の問題に直面した場合

An internal error occurred during: "Updating Maven Project". java.lang.NullPointerException

Eclipseからプロジェクトを削除してから、プロジェクト内の.settingsフォルダーと.projectファイルを削除して、プロジェクトを再インポートします。


この回答は既に存在し、投票数が最も多いため、重複して投稿しても意味がありません。
イールリー

「org.eclipse.m2e.core.prefs」について誰かが言及しましたか?私は問題の背後にある理由を言うつもりです。
Jyoti Prakash、

おそらく、主な答えについてのコメントがその理由を議論するのに最適な場所でしょう
J. Allen

1

これは私を助けました: Project menu -> Clean... -> clean all projects



1

Eclipseにはエラーログがあります。そこに完全なスタックトレースが表示されます。私の場合、java.util.zipライブラリと組み合わされた不正なjarファイルが適切な例外をスローせず、NullPointerExceptionのみが原因であるようです。


私の場合、このシナリオは、Seleniumのいくつかのjavadoc JAR、たとえばrepo1.maven.org/maven2/org/seleniumhq/selenium/selenium-java/…によってトリガーされました。EclipseのM2eのソースでgit.eclipse.org/c/m2e/m2e-core.git/tree/org.eclipse.m2e.jdt/src/...、あなたはgetJavaDocPathInArchive方法が期待していないことがわかりますen.nextElement()からのNullPointerException。
Jeremy K

どうやら、ZIPファイルの列挙による「NullPointerException」はJava 9で対処されています(bugs.openjdk.java.net/browse/JDK-8048990)。
Jeremy K

1

私が使用しています:

Web開発者のためのEclipse Java EE IDE。

バージョン:Neon.3リリース(4.6.3)ビルドID:20170314-1500

私の修正/トリックは、ローカルの依存関係を削除するために〜/ .m2 / repositoryのローカルリポジトリを削除し、新しい依存関係がプルダウンされたプロジェクトを再構築することでした。


0

私も同じ問題を抱えていました。ここでの解決策はどれもうまくいきませんでした。Eclipseを完全に再インストールして、新しいワークスペースを作成する必要がありました。その後、うまくいきました!


0

上記の方法はどれも私にとってはうまくいきませんでした。これは、Eclipseワークスペースに循環依存関係があるために発生することもあります。したがって、ワークスペース内の他のプロジェクトに他のエラーが存在する場合は、それらを修正してみてください。そうすれば、この問題はなくなります。これは私がエラーを排除した方法です。


0

複数のプロジェクトと複数のワークスペースで同じ問題が発生しましたが、オンラインで見つけたソリューションはどれもうまくいきませんでした。私はSTSを使用していますが、機能したのはSTSディレクトリに移動して、STS.iniファイルの先頭に「-clean」を追加することだけでした。その後、ワークスペースを起動して、エラーなしでmaven cleanを実行できます。(iniファイルから-cleanタグを削除して、起動するたびにクリーンアップされないようにすることもできます)

これが誰かを助けることを願っています。


0

私の場合の根本的な問題は、.settingsフォルダー内のファイルの競合でした。したがって、.settingsフォルダーを削除するとMavenエラーは解決されますが、ローカル構成ファイルの一部を保持したいと考えました。競合を解決してから、Mavenの更新をもう一度試しましたが、うまくいきました。


0

私は同じ問題を抱えていました...最後に解決策!

ここに日食のログ:

java.lang.NullPointerException
    at com.google.appengine.eclipse.wtp.maven.GaeRuntimeManager.getGaeRuntime(GaeRuntimeManager.java:85)
    at com.google.appengine.eclipse.wtp.maven.GaeRuntimeManager.ensureGaeRuntimeWithSdk(GaeRuntimeManager.java:55)
    at com.google.appengine.eclipse.wtp.maven.GaeFacetManager.addGaeFacet(GaeFacetManager.java:59)
    at com.google.appengine.eclipse.wtp.maven.GaeProjectConfigurator.configure(GaeProjectConfigurator.java:46)

... GAEランタイムのタイプを取得しようとする「appengine maven wtpプラグイン」に由来しますが、ここではnullのようです(... getRuntimeType()-> NPE):

クラスcom.google.appengine.eclipse.wtp.maven / GaeRuntimeManager.javaを参照してください

  private static IRuntime getGaeRuntime(String sdkVersion) {
    IRuntime[] runtimes = ServerCore.getRuntimes();
    for (IRuntime runtime : runtimes) {
      if (runtime != null &&  **runtime.getRuntimeType()**.equals(GAE_RUNTIME_TYPE)) {

したがって、Eclipseをチェックインすると、Google App Engineが表示されますが、選択すると、SDKが関連付けられていないことがわかります... 設定/サーバー/ランタイム環境

解決策: スクリーンショットの赤字;-)


0

私はこれと同じ症状に遭遇し、上記の解決策はどれも役に立ちませんでした。最後に、earプロジェクトをeclipseにインポートすることで問題のスタックトレースを取得し、これをorg.eclipse.m2e.wtp.MavenDeploymentDescriptorManagementまでトレースして、Windowsの一時ディレクトリ内のディレクトリを削除しようとしていました。 .mavenDeploymentDescriptorManagement "。java.io.File.exists()メソッドから不合理なNullPointerExceptionを引き起こしました。特に、同じ変数を使用してコードが以前のメソッドで同じことを実行した後、file.isFile()を呼び出さずに問題。

これをファイルシステムでチェックアウトすると、ファイルには管理者権限でのみアクセスできることがわかりました。どうやら私はある時点で誤って管理コンソールからEclipseを起動したようです。最後に、Windowsエクスプローラーで隠しファイルを表示し、一時ファイルを手動で削除して、問題を解決しました。


0

問題の別の考えられる原因!

私の場合、それresourceを引き起こしたのは次のブロックであることがわかりました。

<project>
    <build>
        <resources>
            <resource>
                <directory>${basedir}/../some-folder</directory>
                <targetPath>outputFolder</targetPath>
            </resource>
        <resources>
    </build>
</project>

プロジェクトフォルダーのフォルダーが含まれています(Eclipseプロジェクトは、バージョン管理されたプロジェクトフォルダーのサブフォルダーです)。

私の場合、ブロックを削除し、それを Buildヘルパー Mavenプラグインのます。

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>1.9.1</version>
            <executions>
                <execution>
                    <id>my-own-very-cool-id-for-this-step</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>add-resource</goal>
                    </goals>
                    <configuration>
                        <resources>
                            <resource>
                                <directory>${basedir}/../some-folder</directory>
                                <targetPath>outputFolder</targetPath>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

0

私はeclipseを再インストールし、.m2フォルダーを削除してjarファイルを再構築する必要がありました。


0

私の場合、問題は他の依存関係によって使用されていた派生依存関係の競合であり、それらの派生依存関係バージョンの一部は利用できませんでした、おそらくワークスペースの解決ですべてが機能したが、移動すると他の環境にすべてが突然壊れました。そしてまた、私はバージョン範囲で作業していました

mavenは私にこのエラーを出していました:

プロジェクトMyProject:MyProject:jar:1.0.0の依存関係を解決できませんでした:Dependency-A:1.0.1-> Dependency-B:1.1.0-> Dependency-C:1.0.0、Dependency- 間のバージョンの競合を解決できませんでした X:1.0.1-> Dependency-Y:1.1.0-> Dependency-C:1.0.0、Dependency-I:1.0.1-> Dependency-J:1.1.0-> Dependency-C:1.0.0

上記のすべてを試しても何もうまくいかなかったので...

SOLUTION:すべての依存関係でバージョンとして使用しますがLATESTので、Mavenの範囲内のすべての依存関係を解決する必要はありません、あなたが依存関係の1つにビルドをデプロイするために欠場の場合に失敗しますので注意して使用する必要がありますウィッヒ

独自の依存関係で作業している場合はLATESTを使用することをお勧めします。それ以外の場合、サードパーティの将来のバージョンでは、コンパイルまたはランタイムエラーが発生する可能性があります


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.