วิธีแก้ไขข้อผิดพลาด“ การอัพเดต Maven Project” ไม่รองรับ IClasspathEntry kind = 4?


412

ฉันได้นำเข้าโครงการ Maven ใน STS เมื่อฉันเรียกใช้โครงการอัปเดตการอัปเดตที่ฉันได้รับ:

"Updating Maven Project". Unsupported IClasspathEntry kind=4

มีวิธีแก้ปัญหาสำหรับสิ่งนี้หรือไม่?


build บนบรรทัดรับคำสั่งทำงานได้หรือไม่? Maven เวอร์ชันใด
khmarbaise

ฉันมีปัญหาเดียวกันและฉันไม่สามารถให้คำตอบนี้ได้โปรดดูstackoverflow.com/questions/12049566//
Hemant Metalia

คำตอบ:


613

ปัญหานี้ได้รับการแก้ไขใน m2e 1.5.0 ซึ่งมีให้สำหรับ Eclipse Kepler (4.3) และ Luna (4.4)

โปรดดูhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=374332#c14

ปัญหาเกิดจากข้อเท็จจริงที่ว่า STS (the Spring IDE / Eclipse), เช่นเดียวกับ Eclipse และ Eclipse ที่ใช้ IDE อื่น ๆ , ใช้ปลั๊กอิน m2e (clipse) แต่ eclipse: eclipse อาจถูกเรียกใช้ในโครงการ เมื่อ m2e พบรายการ "var" .classpath รายการจะส่งข้อผิดพลาดนี้

ไซต์อัพเดตจะถูกระบุที่ URL ต่อไปนี้:
http://eclipse.org/m2e/m2e-downloads.html

หากคุณไม่สามารถใช้ m2e 1.5.0 ได้ไม่ว่าด้วยเหตุผลใดก็ตาม:

  1. ปิดใช้งานลักษณะ maven สำหรับโครงการ (ผ่านทางเมนูคลิกขวา)

  2. เรียกใช้mvn eclipse:clean(ในขณะที่โครงการของคุณเปิดใน STS / eclipse) คุณอาจต้องรีเฟรชหนึ่งหรือสองโครงการก่อนเปิดใช้งานธรรมชาติอีกครั้งทั้งนี้ขึ้นอยู่กับเวลา คุณควรจะเห็นว่าโครงการของคุณสูญเสียธรรมชาติของ Maven ไปแล้ว (ในeclipse:cleanเป้าหมายเพียงแค่ลบ.project, .classpathและ.settings/ไฟล์ / ไดเรกทอรี. คุณยังสามารถลบไฟล์เหล่านั้น (อีกครั้งในขณะที่โครงการเปิด ) แทนของการทำงานmvn eclipse:clean.)

  3. เปิดใช้งานธรรมชาติ maven
    (ส่วนใหญ่เวลานี้สามารถทำได้โดยการคลิกขวาที่โครงการที่มีปัญหาในบานหน้าต่างสำรวจแพคเกจแล้วเลือก 'กำหนดค่า' -> 'แปลงเป็นโครงการ Maven')


3
ฉันต้องลองสองครั้งเพื่อให้มันทำงาน ครั้งแรกที่ฉันลองใช้ "var" จะพุ่งกลับเข้าไปในไฟล์. classpath ฉันสร้างไฟล์ใหม่ด้วย mvn eclipse: eclipse และลองอีกครั้ง มันทำงานครั้งที่ 2
Deepak Bala

1
มันอาจจะช่วยในการลบด้วยตนเองจากไฟล์ .classpath ทั้งหมดclasspathentryกับชุดแอตทริบิวต์kind var
Puigcerber

31
มันใช้งานได้สำหรับฉัน แต่ฉันต้องทำ "Refresh" เพิ่มเติมก่อนที่จะเปิดใช้งานธรรมชาติ Maven (จริง ๆ แล้วในกรณีของฉัน "กำหนดค่าเป็น Maven Project" เนื่องจากเป็นโครงการที่มีมุมมอง)
Stuart วัตต์

2
repository.sonatype.org/content/repositories/forge-sites/m2eไม่ทำงานอีกต่อไป
Shervin Asgari

2
ฉันคิดว่าคุณผิดรุ่น Eclipse: Eclipse Kepler เป็น 4.3 และ Luna เป็น 4.4
vogella

63
  1. คลิกขวาที่โครงการของคุณเลือก Maven -> ลบ Maven Nature

  2. เปิดเทอร์มินัลของคุณไปที่โฟลเดอร์โครงการและทำ mvn eclipse:clean

  3. คลิกขวาที่โครงการของคุณและเลือก“ กำหนดค่า -> แปลงเป็นโครงการ Maven”

ตอนนี้คุณได้รับ“ IClasspathEntry ชนิด = 4 Eclipse Scala ที่ไม่สนับสนุน” หายไป


5
ขอบคุณสำหรับสิ่งนี้. เพียงแค่ทราบสำหรับคนอื่นมันmvn eclipse:cleanไม่ใช่mvn clean(ฉันถูกหลอกโดยไม่ใส่ใจอย่างใกล้ชิด)
Jin Kim

ตกลง. ฉันได้สร้าง src / java จากบรรทัด cmd หลังจากนำเข้าโครงการไปยังเคปเลอร์ นั่นเป็นกรณี
Zbyszek

43

บางครั้งแม้แต่การนำเข้าโครงการ Maven ซ้ำจะไม่ทำงาน การอัพเดตโปรเจ็กต์อย่างถูกต้องใน eclipse ไม่ใช่กระบวนการที่กำหนดไว้ กระบวนการปลอดภัยที่ล้มเหลว 100% เท่านั้นที่ฉันพบคือ:

  1. ปิดการใช้งาน Maven Nature, วิ่งmvn eclipse:clean, รีสตาร์ท, ข้ามนิ้วของคุณและอธิษฐาน 3 ครั้ง
  2. ถ้าเรื่องนี้จะไม่ทำงานลบโครงการระยะmvn eclipse:cleanฟื้นฟูใหม่นำเข้าอธิษฐานและใช้แรง
  3. หากยังไม่ได้ทำงานรีสตาร์ท Eclipseหรือดียิ่งขึ้นของคอมพิวเตอร์ ในขณะที่รอการรีบูตคุณสามารถบริจาคสุ่มเพื่อแก้ไขกรรมของคุณ ทำซ้ำขั้นตอนที่ 2 และอย่าลืมสวดมนต์และควบคุมความโกรธของคุณ ความโกรธนำไปสู่ความเกลียดชัง ความเกลียดชังนำไปสู่ความทุกข์ทรมาน
  4. ลองคำตอบอื่น ๆ ทั้งหมดที่โพสต์ในกระทู้นี้ คุณอาจต้องลองทั้งหมด 3 ครั้งเป็นอย่างน้อยก่อนที่จะยอมแพ้
  5. ฟอร์แมตคอมพิวเตอร์ติดตั้ง Eclipse และ Mavenใหม่ ไม่จำเป็นต้องสวดภาวนาอีกต่อไปพระเจ้าทุกคนเกลียดคุณอยู่ดี
  6. ลบโปรเจ็กต์ git ของคุณเบิร์นฮาร์ดไดรฟ์ที่เก็บที่เก็บรีโมตและเขียนโครงการของคุณจากศูนย์
  7. ค้นหาไทม์แมชชีนเดินทางไปในอดีตและโน้มน้าวตัวเองให้ติดตามอาชีพอื่นที่ไม่ใช่การเขียนโปรแกรมหรืออย่างน้อยก็เพื่อหลีกเลี่ยง Java

3
พยายามทุกอย่างให้พูดว่า "ปัญหาการจัดการการพึ่งพา Maven" หรือ "NullPointerException"
srirachapills

1
รักษาความสงบและเริ่มต้นใหม่เลิกทำซ้ำ
yannicuLar

1
Java ทำอะไรกับคุณบ้าง
เครื่องซักผ้า Evil

2
@EvilWashingMachine ไม่มีอะไรเลวร้ายจริงๆ .. แค่ลองทำข้ออ้างเพื่อปรับการใช้ไทม์แมชชีน
yannicuLar

1
รักษาความสงบและใช้ vim + terminal
Pratik Singhal

12
  1. ตรวจสอบให้แน่ใจว่าเวอร์ชันของปลั๊กอิน m2e (clipse) ที่คุณใช้อยู่นั้นอย่างน้อย 1.1.0

  2. ปิดโครงการ maven - คลิกขวา "ปิดโครงการ"

  3. คู่มือลบ classpathentry ทั้งหมดที่มี kind = "var" ในไฟล์. classpath
  4. เปิดโครงการ

หรือ

  1. ลบโครงการ maven
  2. rmeove .classpath 4 นำเข้าโครงการใหม่ด้วยตนเอง

ข้อผิดพลาดไม่ได้อยู่ที่ STS ตามที่ระบุไว้โดย @Marco มันเป็นปัญหา m2e ทั่วไป ปิดใช้งานลักษณะ Maven ลบไฟล์. classpath เปิดใช้งานลักษณะ Maven อีกครั้ง
sbzoom

6

คุณเคยลองไหม:

  1. หากคุณมีการนำเข้าโครงการใน eclipse 4 โปรดลบออก
  2. ในคอนโซล maven ให้รัน: mvn eclipse: clean
  3. ใน Eclipse 4: ไฟล์ -> นำเข้า -> Maven -> โครงการ Maven ที่มีอยู่

1
ก่อนที่จะทำสิ่งนี้ตรวจสอบให้แน่ใจว่าปลั๊กอิน maven eclipse ไม่ได้ถูกรันบนโปรเจ็กต์ก่อนหน้านี้ mvn eclipse: clean จะแก้ไขถ้าจำเป็น
AChoice

3
สิ่งนี้ใช้ได้ผลดีกว่าสำหรับฉันในจูโน ฉันลบโครงการใน Eclipse แล้วนำเข้าอีกครั้ง
cs94njw

ไม่มีผลใน Eclipse Kepler
Zbyszek

3

เห็นคำตอบอื่น ๆ ทั้งหมด ฉันพบวิธีที่ง่ายกว่าสำหรับฉัน

ฉันเพิ่งลบบรรทัดทั้งหมดใน. classpath (แก้ไขด้วย eclipse) ที่มี var และใช้ maven -> อัปเดตโครงการโดยไม่มีข้อผิดพลาด


สิ่งนี้ใช้งานได้สำหรับฉันยังจำเป็นต้องลบบรรทัด "jar" ที่มีขวด maven ด้วย
dwjohnston

2

ข้อผิดพลาดนี้จะเกิดขึ้นเช่นกันหากคำสั่ง update ใช้กับโปรเจ็กต์ที่มีรหัสครอบคลุมด้วย Clover

ในการแก้ไขในสถานการณ์นี้: ถอนการติดตั้งโฟลเดอร์โครงการที่คุณต้องการอัพเดท เรียกใช้การปรับปรุง maven จากนั้นใช้สำหรับครอบคลุมรหัสอีกครั้ง


0

ฉันลองทำตามขั้นตอนของมาร์โก แต่ก็ไม่มีโชค แต่ถ้าคุณเพิ่งได้รับปลั๊กอิน m2e ล่าสุดจากลิงก์ที่เขามีให้และคลิกขวาทีละรายการในแต่ละโครงการ -> Maven -> อัปเดตการอ้างอิงข้อผิดพลาดยังคงปรากฏขึ้น แต่ปัญหาได้รับการแก้ไขแล้ว กล่าวคือคำเตือนหายไปในมุมมองเครื่องหมาย ฉันพบปัญหานี้หลังจากนำเข้าบางโครงการไปยัง SpringSource Tool Suite (STS) เมื่อฉันกลับไปที่การติดตั้ง Eclipse Juno คำเตือนก็ปรากฏขึ้น เมื่อเห็นว่าฉันติดตั้ง m2e 1.1 แล้วฉันได้ลองทำตามขั้นตอนของมาร์โกแล้วไม่มีประโยชน์ รับรุ่นล่าสุดแก้ไขได้อย่างไรก็ตาม


1
ขอบคุณแก้ไขคำตอบของฉันเพื่อเน้นว่าคุณควรได้รับเวอร์ชันล่าสุดไม่ใช่แค่ 1.1.0 ซึ่งเป็นเวอร์ชั่นล่าสุดในขณะนั้น
Marco

หากคุณใช้ Eclipse MarketPlace แทนการดาวน์โหลดผ่านเว็บไซต์ภายนอกคุณจะได้รับเวอร์ชันล่าสุดเสมอ
Jops

0

ฉันไม่สามารถรับ mvn eclipse: clean ฯลฯ เพื่อทำงานกับ Kepler

อย่างไรก็ตามฉันเปลี่ยนการสร้างและการขยายตัวแปรเพียงแค่ใช้ไหภายนอกในคลาสพา ธ คราสของฉัน สิ่งนี้สะท้อนให้เห็นใน var ของฉันใน. classpath

นี่เป็นการแก้ไขปัญหา ฉันสามารถอัพเดท Maven ได้


0

ปัญหานี้ ( https://bugs.eclipse.org/394042 ) ได้รับการแก้ไขใน m2e 1.5.0 ซึ่งพร้อมใช้งานสำหรับ Eclipse Kepler และ Luna จาก p2 repo นี้:

http://download.eclipse.org/technology/m2e/releases/1.5

หากคุณใช้ m2e-wtp ด้วยคุณจะต้องติดตั้ง m2e-wtp 1.1.0 เช่นกัน:

http://download.eclipse.org/m2e-wtp/releases/luna/1.1


ลิงก์ firts ให้ผล "ขออภัยไม่พบหน้าหรือไฟล์นี่คือสาเหตุบางประการที่ทำให้ ... "
Jaroslav Záruba

เหตุผล # 1 นำไปใช้ที่นี่: นี่คือที่เก็บ Eclipse Update site / p2 คุณต้องเข้าถึงได้จาก Eclipse (ดูhelp.eclipse.org/luna/index.jsp?topic=//… )
Fred Bricon

0

การอัปเกรดจาก Kepler เป็น Luna ใช้งานได้สำหรับฉัน

ฉันเพิ่งเพิ่มส่วนประกอบบางอย่างสำหรับการสนับสนุน Java 1.8 ดูเหมือนว่าพวกเขาจะไม่เข้ากันได้กับที่ฉันต้องการหรือว่าฉันผสมผิด มันทำให้เกิดปัญหามากมาย พยายามอัปเดตระบบรายงานข้อผิดพลาดเนื่องจากไม่สามารถดำเนินการบางอย่างได้ การอัพเกรด Maven ไม่ทำงาน พยายามหลายสิ่งหลายอย่าง

ดังนั้นหากไม่มีเหตุผลใดที่จะหลีกเลี่ยงการอัพเกรดให้เพิ่มที่เก็บ luna ลงในไซต์ซอฟต์แวร์ที่มีให้เลือกใช้ (Luna http://download.eclipse.org/releases/luna/ ) และ "ตรวจสอบการอัปเดต" มันจะดีกว่าถ้ามีส่วนประกอบทั้งหมดในรุ่นเดียวกันและมีคุณสมบัติใหม่ที่ดี


0

ฉันลองทำตามขั้นตอนทั้งหมดที่กล่าวถึงที่นี่และคำถามที่คล้ายกัน แต่ไม่สามารถแก้ปัญหานี้ได้ ฉันไม่สามารถแก้ปัญหาหรืออัปเดต m2eclipse ของฉันได้ ดังนั้นฉันจึงติดตั้ง Eclipse Luna และแก้ปัญหาของฉัน ... แม้ว่ามันหมายความว่าฉันต้องใช้เวลาประมาณ 45 นาทีเพื่อกำหนดค่าสภาพแวดล้อมทั้งหมดในพื้นที่ทำงานของฉัน



0

ฉันใช้ Eclipse 4.3.2 (Kepler) กับ M2E 1.4.x และรู้สึกถึงปัญหานี้หลายครั้ง!

ในกรณีของฉันคำสั่ง "mvn eclipse: eclipse" ยังสร้าง Checkstyle, PMD และการกำหนดค่า Findbugs ดังนั้น "mvn eclipse: clean" ไม่ได้ช่วยฉันเพราะมันปล่อยไฟล์ปรับตั้งเหล่านั้นทั้งหมดอีกครั้ง

ทางออกที่ดีที่สุดสำหรับฉันคือการลบไฟล์ ".classpath" ทั้งหมด:

find . -name ".classpath" -delete

และอิมพอร์ตโปรเจ็กต์ลงใน eclipse หลังจากนั้น


0

ก่อนที่จะอิมพอร์ตโปรเจ็กต์ควรแปลงเป็น eclipse โปรเจ็กต์ mvn eclipse: eclipse จากนั้นฉันพบข้อผิดพลาดต่อไปนี้ เกิดข้อผิดพลาดภายในระหว่าง: "การนำเข้าโครงการ Maven" ไม่สนับสนุน IClasspathEntry type = 4

โดยที่ value type = "var" ที่ M2E ไม่รู้จักและส่งข้อผิดพลาดไป

ตอนนี้พิมพ์สิ่งนี้ mvn eclipse: clean

ตอนนี้รีเฟรชโครงการใน eclipse หรือนำเข้าอีกครั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.