ฉันกำลังพัฒนาโปรเจ็กต์เว็บ Java EE เมื่อฉันพยายามเพิ่มการอ้างอิงข้อความแสดงข้อผิดพลาดนี้จะปรากฏขึ้น ฉันใช้ Eclipse Kepler
เกิดข้อผิดพลาดภายในระหว่าง: "กำลังอัปเดต Maven Project" java.lang.NullPointerException
คุณช่วยฉันได้ไหม ขอขอบคุณ.
ฉันกำลังพัฒนาโปรเจ็กต์เว็บ Java EE เมื่อฉันพยายามเพิ่มการอ้างอิงข้อความแสดงข้อผิดพลาดนี้จะปรากฏขึ้น ฉันใช้ Eclipse Kepler
เกิดข้อผิดพลาดภายในระหว่าง: "กำลังอัปเดต Maven Project" java.lang.NullPointerException
คุณช่วยฉันได้ไหม ขอขอบคุณ.
คำตอบ:
ฉันแก้ไขของฉันโดยการลบ.settings
โฟลเดอร์และ.project
ไฟล์ในโครงการแล้วนำเข้าโครงการอีกครั้ง
สำหรับฉันแล้วคำตอบที่พบใน CodeRanchโดยผู้ใช้Maneesh Godbole :
- ปิดคราส
- ไปที่โฟลเดอร์ "พื้นที่ทำงาน" ของคุณ
- ตรวจสอบให้แน่ใจว่าการตั้งค่าบน OS ของคุณเพื่อดูไฟล์ที่ซ่อนอยู่เปิดอยู่
- ระบุและลบไดเร็กทอรี. metadata
- รีสตาร์ท eclipse
- นำเข้าโครงการ
ฉันมีปัญหาเดียวกันในโมดูลหนึ่งของฉัน
การรัน "mvn eclipse: eclipse" ในคอนโซล / cmd ช่วยแก้ปัญหาให้ฉันได้
ในกรณีของปัญหานี้เรามี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 ที่มีอยู่ข้อยกเว้นเดียวกันนี้เกิดขึ้น แต่มีการติดตามสแต็กที่ทำให้ฉันพบสิ่งที่กล่าวมาข้างต้น
(นี่คือกับ m2e 1.6.1.20150625-2338 ใน Eclipse Luna Service Release 2 (4.4.2))
ไฟล์org.eclipse.m2e.core.prefsอยู่ในโฟลเดอร์. settings หากคุณประสบปัญหาของ
An internal error occurred during: "Updating Maven Project". java.lang.NullPointerException
ลบโครงการจากคราสแล้วโดยการลบ.settingsโฟลเดอร์และ.projectไฟล์ในโครงการ -> แล้วนำเข้าโครงการ
ในกรณีที่มันช่วยใครได้นอกจากการลบ.settings
และ.project
ฉันต้องลบ.classpath
และ.factorypath
ก่อนที่จะสามารถอิมพอร์ตโปรเจ็กต์เข้าสู่ Eclipse ได้สำเร็จ
วิธีการข้างต้นไม่ได้ผลสำหรับฉัน สิ่งนี้อาจเกิดขึ้นเนื่องจากการมีอยู่ของการอ้างอิงแบบวงกลมในพื้นที่ทำงาน eclipse ของคุณ ดังนั้นหากมีข้อผิดพลาดอื่น ๆ ปรากฏในโครงการอื่น ๆ ในพื้นที่ทำงานของคุณให้ลองแก้ไขปัญหาเหล่านั้นแล้วปัญหานี้จะหมดไป นี่คือวิธีที่ฉันกำจัดข้อผิดพลาด
สิ่งนี้ช่วยฉัน: Project menu -> Clean... -> clean all projects
การลบที่เก็บ maven ในเครื่องช่วยฉันได้
Eclipse มีบันทึกข้อผิดพลาด คุณจะเห็นการติดตามสแต็กที่สมบูรณ์ ในกรณีของฉันดูเหมือนว่าจะเกิดจากไฟล์ jar ที่ไม่ดีรวมกับ libs java.util.zip ไม่ได้มีข้อยกเว้นที่เหมาะสมเพียงแค่ NullPointerException
ฉันกำลังใช้:
Eclipse Java EE IDE สำหรับนักพัฒนาเว็บ
เวอร์ชัน: Neon.3 Release (4.6.3) Build id: 20170314-1500
การแก้ไข / เคล็ดลับสำหรับฉันคือการลบที่เก็บในเครื่องของฉันใน ~ / .m2 / repository เพื่อลบการอ้างอิงในเครื่องและสร้างโครงการของฉันใหม่ซึ่งการอ้างอิงใหม่จะถูกดึงลง
ผมมีปัญหาเดียวกัน. ไม่มีวิธีแก้ปัญหาใดที่ได้ผล ฉันต้องติดตั้งคราสใหม่ทั้งหมดและสร้างพื้นที่ทำงานใหม่ แล้วมันได้ผล!
ฉันมีปัญหาเดียวกันนี้ในหลายโครงการและหลายพื้นที่ทำงานไม่มีวิธีแก้ปัญหาใดที่พบทางออนไลน์สำหรับฉัน ฉันใช้ STS และสิ่งเดียวที่ได้ผลคือเข้าไปในไดเรกทอรี STS ของฉันและเพิ่ม "-clean" ที่ด้านบนของไฟล์ STS.ini จากนั้นคุณสามารถเริ่มต้นพื้นที่ทำงานของคุณและเรียกใช้ maven clean โดยไม่มีข้อผิดพลาด (คุณยังสามารถลบแท็ก -clean ออกจากไฟล์ ini เพื่อที่จะไม่ล้างทุกครั้งที่คุณเริ่ม)
หวังว่านี่จะช่วยใครบางคนได้
ปัญหาหลักในกรณีของฉันคือความขัดแย้งของไฟล์ในโฟลเดอร์. 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)
... มันมาจาก "appengine maven wtp plugin" ที่พยายามรับประเภทของรันไทม์ GAE แต่ดูเหมือนจะเป็นโมฆะที่นี่ (... 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 project อีกครั้งเพื่อคราสและสามารถติดตามสิ่งนี้ลงไปที่ org.eclipse.m2e.wtp.MavenDeploymentDescriptorManagement ซึ่งพยายามลบไดเร็กทอรีในไดเร็กทอรี temp ของ windows ที่เรียกว่า " .mavenDeploymentDescriptorManagement "ซึ่งทำให้เกิด NullPointerException ที่ไม่ลงตัวจากเมธอด java.io.File.exists () โดยเฉพาะอย่างยิ่งเนื่องจากโค้ดได้ทำสิ่งเดียวกันสำเร็จแล้วในเมธอดก่อนหน้าด้วยตัวแปรเดียวกันจากนั้นเรียกว่า file.isFile () โดยไม่มี ปัญหา.
การตรวจสอบสิ่งนี้ในระบบไฟล์พบว่าไฟล์สามารถเข้าถึงได้ด้วยสิทธิ์ของผู้ดูแลระบบเท่านั้น เห็นได้ชัดว่าในบางจุดฉันได้เปิด eclipse จากคอนโซลผู้ดูแลระบบโดยไม่ได้ตั้งใจ ในที่สุดฉันก็ทำให้ไฟล์ที่ซ่อนอยู่มองเห็นได้ใน windows explorer และลบไฟล์ชั่วคราวด้วยตนเองซึ่งช่วยแก้ปัญหาได้
เป็นอีกแหล่งที่มาของปัญหา!
ฉันพบว่าในกรณีของฉันมันเป็นresource
บล็อกต่อไปนี้ที่ทำให้เกิด:
<project>
<build>
<resources>
<resource>
<directory>${basedir}/../some-folder</directory>
<targetPath>outputFolder</targetPath>
</resource>
<resources>
</build>
</project>
รวมโฟลเดอร์จากโฟลเดอร์โปรเจ็กต์ ( โปรเจ็กต์ eclipseเป็นโฟลเดอร์ย่อยของโฟลเดอร์โปรเจ็กต์ที่กำหนดเวอร์ชัน)
ในกรณีของฉันฉันสามารถลบข้อผิดพลาดได้โดยการลบบล็อกและแทนที่ด้วยการโทรไปยังปลั๊กอิน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>
ฉันต้องติดตั้ง eclipse ใหม่ลบโฟลเดอร์. m2 และสร้างไหใหม่
ในกรณีของฉันปัญหาคือความขัดแย้งของการอ้างอิงที่ได้รับซึ่งถูกใช้โดยการอ้างอิงอื่น ๆ และเวอร์ชันการอ้างอิงที่ได้รับบางส่วนไม่พร้อมใช้งานอาจเป็นเพราะการปรับใช้บางอย่างที่ฉันลืมทำเพราะด้วยความละเอียดของพื้นที่ทำงานทุกอย่างทำงานได้ แต่เมื่อย้าย ไปสู่สภาพแวดล้อมอื่น ๆ ทั้งหมดก็พังทันที และฉันกำลังทำงานกับช่วงเวอร์ชันด้วย
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
ฉันลองทั้งหมดข้างต้นแล้วและไม่มีอะไรได้ผลดังนั้น ...
วิธีแก้ปัญหา: ใช้รุ่นล่าสุดเป็นเวอร์ชันในการอ้างอิงทั้งหมดดังนั้น maven จึงไม่จำเป็นต้องแก้ไขการอ้างอิงทั้งหมดในช่วงซึ่งจะต้องใช้ด้วยความระมัดระวังเพราะหากคุณพลาดที่จะปรับใช้การอ้างอิงอย่างใดอย่างหนึ่งการสร้างจะล้มเหลว
เฉพาะฉันขอแนะนำให้คุณใช้ LATEST หากคุณกำลังทำงานกับการอ้างอิงของคุณเองมิฉะนั้นในเวอร์ชันอนาคตของบุคคลที่สามคุณอาจพบข้อผิดพลาดในการคอมไพล์หรือรันไทม์
วิธีแก้ปัญหาข้างต้นไม่ได้ผลสำหรับฉันเนื่องจากปัญหากับรุ่นเปิด JDK 13 https://github.com/spotify/dockerfile-maven/issues/163 ดังนั้นฉันจึงลดระดับเพื่อเปิด JDK8 และมันก็ใช้ได้สำหรับฉัน