Java EE Webプロジェクトを開発しています。依存関係を追加しようとすると、このエラーメッセージが表示されます。私はEclipse Keplerを使用しています。
「Mavenプロジェクトの更新」中に内部エラーが発生しました。java.lang.NullPointerException
私たちを手伝ってくれますか?ありがとうございました。
Java EE Webプロジェクトを開発しています。依存関係を追加しようとすると、このエラーメッセージが表示されます。私はEclipse Keplerを使用しています。
「Mavenプロジェクトの更新」中に内部エラーが発生しました。java.lang.NullPointerException
私たちを手伝ってくれますか?ありがとうございました。
回答:
私はプロジェクトの.settings
フォルダーと.project
ファイルを削除してからプロジェクトを再インポートすることで解決しました。
私にとっては、ユーザーManeesh GodboleがCodeRanchで見つけた答えを使用しました :
- 日食を閉じます。
- 「workspace」フォルダに移動します
- 隠しファイルを表示するOSの設定がオンになっていることを確認します
- .metadataディレクトリを特定して削除する
- 日食を再開する
- プロジェクトをインポート
私のモジュールの1つで同じ問題が発生しました。
console / cmdで「mvn eclipse:eclipse」を実行すると、問題が解決しました。
この問題の例では、 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で発生します。)
org.eclipse.m2e.core.prefsファイルは.settingsフォルダーにあります。の問題に直面した場合
An internal error occurred during: "Updating Maven Project". java.lang.NullPointerException
Eclipseからプロジェクトを削除してから、プロジェクト内の.settingsフォルダーと.projectファイルを削除して、プロジェクトを再インポートします。
ローカルのMavenリポジトリを削除すると私が助けました
Eclipseにはエラーログがあります。そこに完全なスタックトレースが表示されます。私の場合、java.util.zipライブラリと組み合わされた不正なjarファイルが適切な例外をスローせず、NullPointerExceptionのみが原因であるようです。
私が使用しています:
Web開発者のためのEclipse Java EE IDE。
バージョン:Neon.3リリース(4.6.3)ビルドID:20170314-1500
私の修正/トリックは、ローカルの依存関係を削除するために〜/ .m2 / repositoryのローカルリポジトリを削除し、新しい依存関係がプルダウンされたプロジェクトを再構築することでした。
私の場合の根本的な問題は、.settingsフォルダー内のファイルの競合でした。したがって、.settingsフォルダーを削除するとMavenエラーは解決されますが、ローカル構成ファイルの一部を保持したいと考えました。競合を解決してから、Mavenの更新をもう一度試しましたが、うまくいきました。
私は同じ問題を抱えていました...最後に解決策!
ここに日食のログ:
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が関連付けられていないことがわかります...
解決策: スクリーンショットの赤字;-)
私はこれと同じ症状に遭遇し、上記の解決策はどれも役に立ちませんでした。最後に、earプロジェクトをeclipseにインポートすることで問題のスタックトレースを取得し、これをorg.eclipse.m2e.wtp.MavenDeploymentDescriptorManagementまでトレースして、Windowsの一時ディレクトリ内のディレクトリを削除しようとしていました。 .mavenDeploymentDescriptorManagement "。java.io.File.exists()メソッドから不合理なNullPointerExceptionを引き起こしました。特に、同じ変数を使用してコードが以前のメソッドで同じことを実行した後、file.isFile()を呼び出さずに問題。
これをファイルシステムでチェックアウトすると、ファイルには管理者権限でのみアクセスできることがわかりました。どうやら私はある時点で誤って管理コンソールからEclipseを起動したようです。最後に、Windowsエクスプローラーで隠しファイルを表示し、一時ファイルを手動で削除して、問題を解決しました。
問題の別の考えられる原因!
私の場合、それ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>
私の場合、問題は他の依存関係によって使用されていた派生依存関係の競合であり、それらの派生依存関係バージョンの一部は利用できませんでした、おそらくワークスペースの解決ですべてが機能したが、移動すると他の環境にすべてが突然壊れました。そしてまた、私はバージョン範囲で作業していました
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を使用することをお勧めします。それ以外の場合、サードパーティの将来のバージョンでは、コンパイルまたはランタイムエラーが発生する可能性があります
上記の解決策は、JDK 13バージョンを開くと問題が発生するため、私にとっては機能しませんでした https://github.com/spotify/dockerfile-maven/issues/163 したがって、JDK8を開くように低下し、私にとっては機能します