Cách khắc phục lỗi Cập nhật Maven Dự án Maven. IClasspathEntry không được hỗ trợ = 4?


412

Tôi đã nhập dự án maven trong STS, khi tôi chạy cập nhật dự án cập nhật tôi nhận được:

"Updating Maven Project". Unsupported IClasspathEntry kind=4

Có một cách giải quyết cho điều này?


Liệu một bản dựng trên dòng lệnh có hoạt động không? Phiên bản Maven nào?
khmarbaise

Tôi có cùng một vấn đề và tôi không thể slove bởi câu trả lời này, bạn có thể vui lòng xem stackoverflow.com/questions/12049566/
trộm

Câu trả lời:


613

Sự cố này đã được khắc phục trong m2e 1.5.0, có sẵn cho Eclipse Kepler (4.3) và Luna (4.4)

Vui lòng xem https://bugs.eclipse.org/bugs/show_orms.cgi?id=374332#c14

Vấn đề xảy ra là do STS (Spring IDE / Eclipse), cũng như Eclipse và các IDE dựa trên Eclipse khác, sử dụng plugin m2e (clipse) nhưng nhật thực đó có thể đã được chạy trên dự án. Khi m2e gặp một mục "var". Classpath, nó sẽ đưa ra lỗi này.

Các trang web cập nhật được chỉ định tại url sau:
http://eclipse.org/m2e/m2e-doads.html

Nếu bạn không thể sử dụng m2e 1.5.0 vì bất kỳ lý do gì, thì:

  1. Vô hiệu hóa bản chất maven cho dự án (thông qua menu chuột phải)

  2. Chạy mvn eclipse:clean(trong khi dự án của bạn đang mở trong STS / nhật thực). Tùy thuộc vào thời gian, bạn có thể cần phải làm mới một hoặc hai dự án trước khi bật lại tính chất maven. Bạn sẽ có thể thấy rằng dự án của bạn đã mất bản chất Maven. (Các eclipse:cleanmục tiêu chỉ xóa .project, .classpath.settings/các tập tin / thư mục. Bạn cũng có thể chỉ cần loại bỏ các tập tin (một lần nữa trong khi dự án được mở ) thay vì chạy mvn eclipse:clean.)

  3. Kích hoạt lại bản chất maven.
    (Hầu hết thời gian, điều này có thể được thực hiện bằng cách nhấp chuột phải vào dự án được đề cập trong ngăn thám hiểm gói, sau đó chọn 'Cấu hình' -> 'Chuyển đổi sang Dự án Maven')


3
Tôi đã phải thử điều này hai lần để làm cho nó hoạt động. Lần đầu tiên tôi thử nó, "var" đã quay trở lại vào tập tin. Classpath. Tôi đã tạo lại các tập tin với mvn eclipse: eclipse và thử lại. Nó đã làm việc lần thứ 2.
Deepak Bala

1
Nó có thể giúp loại bỏ thủ công khỏi tệp. Classpath classpathentryvới kindthuộc tính được đặt thành var.
Puigcerber

31
Nó hoạt động với tôi, nhưng tôi đã phải thực hiện thêm "Làm mới" trước khi bật lại bản chất Maven (thực ra trong trường hợp của tôi là "Cấu hình như dự án Maven" vì đây là một dự án theo khía cạnh)
Stuart Watt


2
Tôi nghĩ bạn đã sai các phiên bản Eclipse: Eclipse Kepler là 4.3 và Luna là 4.4
vogella

63
  1. Nhấp chuột phải vào dự án của bạn, chọn Maven -> Xóa Maven Nature.

  2. Mở terminal của bạn, vào thư mục dự án của bạn và làm mvn eclipse:clean

  3. Nhấp chuột phải vào Dự án của bạn và chọn Cấu hình trên màn hình -> Chuyển đổi thành Dự án Maven

Bây giờ bạn đã có loại IClasspathEntry không được hỗ trợ = 4 Eclipse Scala đã biến mất.


5
Cám ơn vì cái này. Chỉ là một lưu ý cho người khác, mvn eclipse:cleankhông phải vậy mvn clean(tôi đã bị lừa khi không chú ý kỹ).
Jin Kim

Đồng ý. Tôi đã tạo src / java từ dòng cmd, sau khi nhập dự án vào Kepler. Đó là trường hợp.
Zbyszek

43

Đôi khi, ngay cả việc nhập lại dự án Maven cũng không hoạt động. Cập nhật dự án chính xác trong nhật thực không phải là một quá trình xác định. Quy trình an toàn thất bại 100% duy nhất tôi tìm thấy là:

  1. Vô hiệu hóa Maven Nature, chạy mvn eclipse:clean, khởi động lại, bắt chéo ngón tay của bạn và cầu nguyện 3 lần.
  2. Nếu điều này không hiệu quả, hãy xóa dự án, chạy mvn eclipse:clean, nhập lại làm mới, cầu nguyện và sử dụng vũ lực .
  3. Nếu điều này vẫn không hoạt động, hãy khởi động lại Eclipse hoặc thậm chí tốt hơn máy tính của bạn . Trong khi chờ khởi động lại, bạn có thể đóng góp ngẫu nhiên để sửa lỗi Karma của mình. Lặp lại bước 2 và đừng quên cầu nguyện và kiểm soát cơn giận của bạn. Sự tức giận dẫn đến sự ghét bỏ. Ghét dẫn đến đau khổ.
  4. Hãy thử tất cả các câu trả lời khác được đăng trong chủ đề này. Bạn có thể cần phải thử tất cả chúng ít nhất 3 lần trước khi bỏ cuộc.
  5. Định dạng máy tính của bạn, cài đặt lại Eclipse và Maven . Không cần phải cầu nguyện nữa, dù sao thì tất cả các vị thần đều ghét bạn
  6. Xóa dự án git của bạn, ghi ổ đĩa vật lý lưu trữ kho lưu trữ từ xa và viết dự án của bạn từ đầu.
  7. Tìm một cỗ máy thời gian , du hành về quá khứ và thuyết phục bản thân theo nghề khác, không lập trình hoặc ít nhất là để tránh Java

3
Đã thử tất cả, tiếp tục nói "Vấn đề quản lý phụ thuộc Maven" hoặc "NullPulumException"
srirachapills

1
Giữ bình tĩnh và khởi động lại hoàn tác lặp lại
yannicuLar

1
Java đã làm gì với bạn?
Máy giặt Evil

2
@EvilWashingMachine Không có gì xấu thực sự .. Chỉ cần thử tạo ra một lý do để biện minh cho việc sử dụng một cỗ máy thời gian
yannicuLar

1
Giữ bình tĩnh và sử dụng thiết bị đầu cuối vim +
Pratik Singhal

12
  1. Đảm bảo rằng phiên bản của plugin m2e (clipse) mà bạn đang chạy ít nhất là 1.1.0

  2. Đóng dự án maven - nhấp chuột phải vào "Đóng dự án"

  3. Hướng dẫn xóa tất cả classpathentry với kind = "var" trong tệp. Classpath
  4. Chủ đề mở

hoặc là

  1. Xóa dự án maven
  2. Hướng dẫn sử dụng rmeove. Classpath 4 Dự án Reimport

Lỗi không phải với STS như được nêu bởi @Marco. Đây là một vấn đề chung m2e. Vô hiệu hóa bản chất Maven, xóa tệp. Classpath, bật lại bản chất Maven.
sbzoom

6

Bạn đã thử chưa:

  1. Nếu bạn có dự án nhập vào nhật thực 4, vui lòng xóa nó.
  2. Trong maven consol, chạy: mvn eclipse: sạch
  3. Trong Eclipse 4: Tệp -> Nhập -> Maven -> Dự án Maven hiện có

1
trước khi làm điều này, hãy chắc chắn rằng plugin maven eclipse chưa được chạy trên dự án trước đó. mvn eclipse: sạch sẽ sửa nó nếu cần.
Vui mừng

3
Điều này làm việc tốt hơn cho tôi ở Juno. Tôi đã xóa các dự án trong Eclipse và sau đó nhập lại.
cs94njw

Không có hiệu lực trong Eclipse Kepler
Zbyszek

3

Xem tất cả các câu trả lời khác. Tôi tìm cho tôi một cách đơn giản hơn.

Tôi vừa xóa tất cả các dòng trong. Classpath (chỉnh sửa bằng nhật thực) có chứa var và sử dụng maven -> cập nhật dự án mà không gặp lỗi.


Điều này làm việc cho tôi, cũng cần thiết để loại bỏ một dòng "jar" có chứa một lọ maven.
dwjohnston

2

Lỗi này cũng được đưa ra nếu lệnh cập nhật được sử dụng trên một dự án được sử dụng để bao phủ mã với Cỏ ba lá.

Để giải quyết trong trường hợp này: Bỏ công cụ các thư mục dự án bạn muốn cập nhật. Chạy cập nhật maven sau đó công cụ cho bảo hiểm mã một lần nữa.


0

Tôi đã thử các bước của Marco nhưng không có may mắn. Thay vào đó, nếu bạn chỉ nhận được plugin m2e mới nhất từ ​​liên kết mà anh ấy cung cấp và lần lượt nhấp chuột phải vào từng dự án -> Maven -> Cập nhật phụ thuộc thì lỗi vẫn bật lên nhưng vấn đề đã được giải quyết. Đó là để nói rằng các cảnh báo biến mất trong chế độ xem Markers. Tôi gặp phải vấn đề này sau khi nhập một số dự án vào SpringSource Tool Suite (STS). Khi tôi trở lại cài đặt Juno Eclipse của mình, các cảnh báo đang hiển thị. Thấy rằng tôi đã cài đặt m2e 1.1, tôi đã thử các bước của Marco nhưng không có kết quả. Bắt phiên bản mới nhất đã sửa nó.


1
Cảm ơn, đã chỉnh sửa câu trả lời của tôi để nhấn mạnh rằng bạn nên có phiên bản mới nhất, không chỉ 1.1.0 mà là phiên bản mới nhất.
Marco

Nếu bạn sử dụng Eclipse MarketPlace thay vì tải xuống qua một trang bên ngoài, bạn sẽ luôn có được phiên bản mới nhất.
Nhảy vào

0

Tôi không thể có được nhật thực mvn: sạch, v.v. để làm việc với Kepler.

Tuy nhiên, tôi đã thay đổi việc tạo và mở rộng các biến thành chỉ sử dụng các lọ bên ngoài trong đường dẫn lớp nhật thực của mình. Điều này đã được phản ánh trong không có var trong my classpath của tôi.

Điều này đã khắc phục vấn đề. Tôi đã có thể thực hiện cập nhật Maven.


0

Vấn đề này ( https://bugs.eclipse.org/394042 ) được khắc phục trong m2e 1.5.0, có sẵn cho Eclipse Kepler và Luna từ repo p2 này:

http://doad.eclipse.org/t Technology / m2e / release / 1.5

Nếu bạn cũng sử dụng m2e-wtp, bạn cũng sẽ cần cài đặt m2e-wtp 1.1.0:

http://doad.eclipse.org/m2e-wtp/release/luna/1.1


Liên kết fairs mang lại "Chúng tôi xin lỗi, không thể tìm thấy trang hoặc tệp. Đây là một số lý do tại sao ..."
Jaroslav Záruba

Lý do số 1 áp dụng ở đây: Đây là kho lưu trữ trang web / p2 Cập nhật Eclipse; bạn phải truy cập nó từ Eclipse (xem help.eclipse.org/luna/index.jsp?topic=// Word ).
Fred Bricon

0

Nâng cấp từ Kepler lên Luna làm việc cho tôi.

Tôi vừa mới thêm một số thành phần để hỗ trợ Java 1.8. Có vẻ như họ không tương thích như tôi muốn hoặc tôi đã trộn lẫn những cái sai. Nó thực sự gây ra rất nhiều vấn đề. Cố gắng cập nhật hệ thống báo cáo lỗi vì chúng không thể đáp ứng một số phụ thuộc. Nâng cấp Maven không hoạt động. Đã thử rất nhiều thứ.

Vì vậy, nếu không có lý do gì để tránh nâng cấp, chỉ cần thêm kho lưu trữ luna vào các trang web phần mềm có sẵn (Luna http://doad.eclipse.org/release/luna/ ) và "kiểm tra cập nhật". Tốt hơn là có tất cả các thành phần với cùng một phiên bản và có một số tính năng mới tốt đẹp.


0

Tôi đã thử tất cả các bước được đề cập ở đây và trên các câu hỏi tương tự nhưng không thể giải quyết vấn đề này. Tôi không thể giải quyết vấn đề cũng như cập nhật m2eclipse của mình. Vì vậy, tôi đã cài đặt Eclipse Luna và nó đã giải quyết vấn đề của tôi ... mặc dù điều đó có nghĩa là tôi phải mất khoảng 45 phút để cấu hình tất cả môi trường trong không gian làm việc của mình.


0

Hãy thử mvn dọn dẹp cài đặt nhật thực: lệnh eclipse -Dwtpversion = 2.0 trên dấu nhắc lệnh của DOS. Đề nghị bạn bởi vì, nó làm việc cho tôi !!


0

Tôi đang sử dụng Eclipse 4.3.2 (Kepler) với M2E 1.4.x và đã cảm thấy vấn đề này nhiều lần!

Trong trường hợp của tôi, lệnh "mvn eclipse: eclipse" cũng tạo ra cấu hình Checkstyle, PMD và Findbugs để "mvn eclipse: clean" không giúp tôi vì nó làm rơi tất cả các tệp cấu hình đó một lần nữa.

Giải pháp tốt nhất cho tôi là xóa tất cả các tệp ". Classpath":

find . -name ".classpath" -delete

và nhập dự án vào nhật thực sau đó.


0

Trước khi nhập dự án, nên chuyển đổi thành dự án nhật thực mvn nhật thực: nhật thực Sau đó tôi đã tìm thấy lỗi sau. Đã xảy ra lỗi nội bộ trong quá trình: "Nhập dự án Maven". Được hỗ trợ IClasspathEntry kind = 4

Giá trị kind = "var" ở đâu mà M2E không nhận ra và do đó ném lỗi.

Bây giờ gõ này. nhật thực mvn: sạch

Bây giờ làm mới dự án trong nhật thực hoặc nhập lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.