Kesalahan internal terjadi selama: "Memperbarui Proyek Maven". java.lang.NullPointerException


91

Saya sedang mengembangkan proyek web Java EE. Ketika saya mencoba menambahkan ketergantungan, pesan kesalahan ini muncul. Saya menggunakan Eclipse Kepler.

Kesalahan internal terjadi selama: "Memperbarui Proyek Maven". java.lang.NullPointerException

Bisakah kamu membantuku? Terima kasih.

masukkan deskripsi gambar di sini


1
Apakah Anda menggunakan gerhana? dapatkah Anda memposting seluruh pelacakan tumpukan? Anda dapat menemukannya di Tampilan "Log Kesalahan".
Pablo Lascano

hapus .metadata Anda di folder ruang kerja, bisa menyelesaikan ini. Tapi Anda kehilangan konfigurasi ruang kerja Anda. = (
Fernando Gomes

Jawaban:


155

Saya menyelesaikan milik saya dengan menghapus .settingsfolder dan .projectfile dalam proyek dan kemudian mengimpor kembali proyek tersebut.


5
Saya mencoba banyak hal, dan folder .settings-lah yang melakukannya untuk saya.
simon

Ini membantu! Namun, karena saya menggunakan Workspace Resolution untuk menyelesaikan beberapa dependensi pom ke proyek di Workspace yang sama, saya harus menonaktifkan Workspace Resolution, lalu Nonaktifkan Maven Nature, lalu mengaktifkan kembali Maven di project tersebut.
mcolley73

1
Jep, itu berhasil untuk saya, tampaknya itu juga mengacu pada versi Google App Engine yang tidak saya miliki lagi (diperbarui)
Dieter Hubau

Juga harus memulai kembali gerhana sebelum mengimpor kembali.
rakmoh

Saya menyelesaikannya hanya dengan menghapus semua file .settings, menutup sebelum Eclipse. Kemudian saya menjalankan pembaruan maven.
isma.imc

25

Bagi saya, jawaban yang saya temukan di CodeRanch , oleh pengguna Maneesh Godbole :

  1. Tutup gerhana.
  2. Arahkan ke folder "ruang kerja" Anda
  3. Pastikan pengaturan pada OS Anda untuk melihat file tersembunyi dihidupkan
  4. Identifikasi dan hapus direktori .metadata
  5. Mulai ulang gerhana
  6. Proyek impor

1
Ini adalah satu-satunya jawaban di sini yang berhasil untuk saya. Entitas .settings dan .project dibuat ulang saat permulaan, menyebabkan masalah yang sama hingga saya menghapus folder metadata. +1 & terima kasih!
Mark W

@MarkW Saya senang bahwa membantu :-)
Eel Lee

Bagi saya ini berfungsi, tetapi saya perlu mengkonfigurasi ulang semua ruang kerja saya. = (
Fernando Gomes

itu menghapus semua pengaturan saya di eclipse. Tata letak, perspektif, dan warna semuanya hilang.
Umut

6

Saya memiliki masalah yang sama di salah satu modul saya.

Menjalankan "mvn eclipse: eclipse" di konsol / cmd memecahkan masalah bagi saya.


3

Dalam contoh masalah ini, kami memiliki pom.xmlfile di mana konfigurasi pemetaan siklus hidup khusus m2e

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

tidak memiliki <version>1.0.0</version>bagian. Saat melakukan Maven -> Perbarui Proyek ..., ini menyebabkan NullPointerException yang dilaporkan tanpa pelacakan tumpukan. Saat menggunakan Impor baru ... -> Proyek Maven yang Ada, pengecualian yang sama terjadi, tetapi dengan jejak tumpukan yang membuat saya menemukan hal di atas.

(Ini dengan m2e 1.6.1.20150625-2338 di Eclipse Luna Service Release 2 (4.4.2).)


1
Ini adalah kasus saya. Saya kira masalah yang dijelaskan memiliki banyak penyebab berbeda.
Aleksandr Erokhin

2

Jika itu membantu siapa pun, selain menghapus .settingsdan .project, saya harus menghapus .classpathdan .factorypathsebelum dapat mengimpor proyek dengan sukses ke Eclipse.


1

File org.eclipse.m2e.core.prefs ada di folder .settings . Jika Anda menghadapi masalah

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

Hapus proyek dari gerhana kemudian dengan menghapus .settings folder & .project file dalam proyek -> kemudian kembali mengimpor proyek.


Jawaban ini sudah ada dan memiliki suara positif terbanyak, jadi saya rasa tidak ada gunanya memposting duplikat.
Eel Lee

Apakah ada yang menyebut tentang "org.eclipse.m2e.core.prefs"? Maksud saya apa alasan di balik masalah tersebut.
Jyoti Prakash

Mungkin komentar tentang jawaban utama adalah tempat terbaik untuk membahas alasannya
J. Allen

1

Tidak satu pun dari metode di atas yang berhasil untuk saya. Ini mungkin juga muncul karena adanya ketergantungan melingkar di ruang kerja gerhana Anda. Jadi jika ada kesalahan lain yang ada di salah satu proyek lain di ruang kerja Anda, cobalah untuk memperbaikinya dan masalah ini akan hilang. Beginilah cara saya menghilangkan kesalahan.


1

Ini membantu saya: Project menu -> Clean... -> clean all projects



1

Eclipse memiliki log kesalahan. Di sana Anda akan melihat jejak tumpukan lengkap. Dalam kasus saya, ini tampaknya disebabkan oleh file jar yang buruk yang dikombinasikan dengan java.util.zip libs yang tidak memberikan pengecualian yang sesuai, hanya NullPointerException.


Dalam kasus saya, skenario ini dipicu oleh beberapa JAR javadoc dari Selenium, misalnya, repo1.maven.org/maven2/org/seleniumhq/selenium/selenium-java/… . Dalam sumber untuk Eclipse m2e di git.eclipse.org/c/m2e/m2e-core.git/tree/org.eclipse.m2e.jdt/src/… , Anda dapat melihat bahwa metode getJavaDocPathInArchive tidak mengharapkan NullPointerException dari en.nextElement ().
Jeremy K

Rupanya "NullPointerException" dari penghitungan file ZIP dialamatkan di Java 9 ( bugs.openjdk.java.net/browse/JDK-8048990 ).
Jeremy K

1

Saya menggunakan:

Eclipse Java EE IDE untuk Pengembang Web.

Versi: Neon.3 Rilis (4.6.3) Build id: 20170314-1500

Perbaikan / trik untuk saya adalah menghapus repositori lokal saya di ~ / .m2 / repositori untuk menghapus dependensi lokal dan membangun kembali proyek saya di mana dependensi baru ditarik ke bawah.


0

Saya memiliki masalah yang sama. Tidak ada solusi di sini yang berhasil. Saya harus menginstal ulang gerhana sepenuhnya dan membuat ruang kerja baru. Kemudian berhasil!


0

Saya mengalami masalah yang sama di beberapa proyek dan banyak ruang kerja, tidak ada solusi yang saya temukan secara online yang berhasil untuk saya. Saya menggunakan STS dan satu-satunya hal yang berhasil adalah masuk ke direktori STS saya dan menambahkan "-clean" ke bagian atas file STS.ini. Anda kemudian dapat memulai ruang kerja Anda dan menjalankan maven clean tanpa kesalahan. (Anda juga dapat menghapus tag -clean dari file ini sehingga tidak membersihkan setiap kali Anda memulainya)

Semoga ini bisa membantu seseorang.


0

Masalah akar dalam kasus saya adalah konflik file di folder .settings. Jadi, menghapus folder .settings akan menyelesaikan kesalahan Maven, tetapi saya ingin menyimpan beberapa file konfigurasi lokal saya. Saya menyelesaikan konflik, lalu mencoba pembaruan Maven lagi dan berhasil.


0

Saya memiliki masalah yang sama ... solusi di bagian akhir!

di sini log gerhana:

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)

... berasal dari "appengine maven wtp plugin" yang mencoba mendapatkan jenis waktu proses GAE, tetapi tampaknya nol di sini (... getRuntimeType () -> NPE):

lihat kelas 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)) {

Jadi, jika Anda memeriksa di gerhana, Google App Engine terlihat, tetapi ketika Anda memilihnya, Anda akan melihat bahwa tidak ada SDK yang dikaitkan ... preferensi / Server / lingkungan Runtime

SOLUSI: berwarna merah pada tangkapan layar ;-)


0

Saya mengalami gejala yang sama dan tidak ada solusi di atas yang membantu. Saya akhirnya mendapatkan jejak tumpukan masalah dengan mengimpor proyek telinga lagi ke gerhana, dan dapat melacak ini ke org.eclipse.m2e.wtp.MavenDeploymentDescriptorManagement yang mencoba menghapus direktori di direktori temp windows yang disebut " .mavenDeploymentDescriptorManagement ", yang menyebabkan NullPointerException tidak rasional dari metode java.io.File.exists (), terutama karena kode tersebut telah berhasil melakukan hal yang sama di metode sebelumnya dengan variabel yang sama, lalu memanggil file.isFile () tanpa masalah.

Memeriksa ini di sistem file mengungkapkan bahwa file tersebut hanya dapat diakses dengan hak administrator. Rupanya saya pada suatu saat meluncurkan gerhana dari konsol administrator secara tidak sengaja. Pada akhirnya saya hanya membuat file tersembunyi terlihat di windows explorer dan menghapus file sementara secara manual, yang memecahkan masalah.


0

Hanya kemungkinan sumber masalahnya!

Saya menemukan bahwa dalam kasus saya itu adalah resourceblok berikut yang menyebabkannya:

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

Itu termasuk folder dari folder proyek ( proyek gerhana adalah subfolder dari folder proyek berversi ).

Dalam kasus saya, saya dapat menghapus kesalahan dengan menghapus blok dan menggantinya dengan panggilan ke plugin Build helper 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

Saya harus menginstal ulang eclipse, menghapus folder .m2 dan membangun kembali toples.


0

Dalam kasus saya, masalahnya adalah konflik dependensi turunan yang telah digunakan oleh dependensi lain, dan beberapa versi dependensi turunan tersebut tidak tersedia, mungkin karena beberapa penerapan yang saya lupa lakukan karena dengan resolusi ruang kerja semuanya berfungsi, tetapi saat memindahkan ke lingkungan lain semua pecah tiba-tiba. Dan juga saya bekerja dengan rentang versi

maven memberi saya kesalahan ini:

Tidak dapat menyelesaikan ketergantungan untuk proyek MyProject: MyProject: jar: 1.0.0: Tidak dapat menyelesaikan konflik versi antara Dependensi-A: 1.0.1 -> Dependensi-B: 1.1.0 -> Dependency-C: 1.0.0 , Dependency- X: 1.0.1 -> Dependensi-Y: 1.1.0 -> Dependensi-C: 1.0.0 , Dependensi-I: 1.0.1 -> Dependensi-J: 1.1.0 -> Dependensi-C: 1.0.0

Saya mencoba semua di atas dan tidak ada yang berhasil, jadi ...

SOLUSI : Gunakan TERBARU sebagai versi di semua dependensi, jadi maven tidak perlu menyelesaikan semua dependensi dalam rentang, yang harus digunakan dengan hati-hati karena jika Anda melewatkan salah satu dependensi, build akan gagal

Hanya saya menyarankan Anda untuk menggunakan TERBARU jika Anda bekerja dengan dependensi Anda sendiri, jika tidak di beberapa versi masa depan pihak ketiga, Anda dapat menemukan beberapa kesalahan kompilasi atau runtime


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.