2012-03-14 45 views
19

Chúng ta đang nhận được một hành vi rất lạ trong môi trường phát triển của chúng tôi phù hợp với tất cả các nhà phát triển của chúng tôi.Maven clean + build gây ra dự án trong Eclipse để hiển thị lỗi cho đến khi làm sạch trong Eclipse

Hiện có khoảng 20 dự án maven (3.0.4) trong môi trường phát triển, tất cả chúng là các dự án mở trong Eclipse (Indigo) với sonatype m2e (0.12.0) xử lý các phụ thuộc như bình thường. (m2e 1.0 đang khiến chúng tôi gặp nhiều vấn đề hơn giải pháp)

Trong số tất cả 20 dự án của chúng tôi có một dự án hành động kỳ quặc. Khi thực hiện "mvn clean install" trên dự án đó, mặc dù maven vượt qua thành công, nó gây ra 4 tệp java (trong các bài kiểm tra đơn vị, nếu nó tạo ra bất kỳ sự khác biệt nào) để hiển thị lỗi trong Eclipse.

Lỗi của thuộc tính "SomeNameOfClass cannot be resolved to a type" mặc dù mở tệp và nhấn F3 (Khai báo mở) trên tham chiếu lớp không đúng sẽ tìm thấy lớp không có sự cố.

"mvn clean" là vấn đề, nếu chúng tôi chỉ chạy "mvn install" điều này không xảy ra.

Dự án của Eclipse-> xóa sạch lỗi và mọi thứ đều ổn.

Đây là không một vấn đề hoạt động mà thực sự ngăn cản tôi làm việc hay bất cứ điều gì như thế, tôi có thể giải quyết nó đơn giản bằng cách làm sạch trong Eclipse, tôi chỉ ghét làm điều đó mỗi lần và tôi không thể đứng đỏ Xs trong các dự án của tôi ngay cả khi chúng không có hiệu lực.

Tôi thực sự rất tò mò tại sao điều này lại xảy ra, tại sao cụ thể 4 lớp đó? tại sao tại sao? :)

Cảm ơn

+0

Bạn có thể đưa ra nhiều quyết định hơn về các lớp kiểm tra đó không? có các lớp kiểm tra khác hoạt động như mong đợi không? họ có một con đường cụ thể không? –

+0

Như đã đề cập trước đó, bạn nên cung cấp thêm chi tiết ... Có phải những tệp đó đã được tạo không? – khmarbaise

+0

Các tệp này là các tệp java thông thường, không được tạo. Chúng được gắn với Kiểm thử và chứa một vài phương thức được chú thích bằng @Test như các lớp JUnit bình thường là .. Lớp được tham chiếu được hiển thị là 'không thể được giải quyết thành kiểu' là trừu tượng – Enrico

Trả lời

20

Chúng tôi đã gặp vấn đề tương tự chính xác trong thời gian trước. Chúng tôi có hơn 20 dự án cùng loại lỗi. Từ cuộc điều tra chúng tôi đã làm, chúng tôi kết luận rằng khi maven clean install được chạy, nhật thực mất dấu vết của các tệp lớp và cho rằng một số trong số đó không được xác định. Các giải pháp chúng tôi đã là đưa ra sau tại cửa sổ dòng lệnh:

mvn eclipse:clean 
mvn clean install 
mvn eclipse:eclipse 
+5

Nếu m2e hoặc m2eclipse được sử dụng mvn eclipse: ... không nên sử dụng nữa. Cách tốt hơn là thực hiện Update-Project-Configuration trong trình đơn Maven - Context. – khmarbaise

+1

@GETah Trong khi những gì bạn đang đề xuất loại bỏ các lỗi, nó vít lên .project và .classpath. Các tệp đó nằm trong quyền kiểm soát nguồn của chúng tôi và thay đổi chúng trên mọi bản dựng không phải là một lựa chọn tốt. Tôi cho rằng tôi có thể làm điều đó và sau khi mọi thứ thực hiện một số: 'git checkout - .project' và' git checkout - .classpath' nhưng điều đó có vẻ hơi cồng kềnh. – Enrico

+7

@Enrico Tôi nghĩ rằng việc cài đặt nhật thực dưới sự kiểm soát phiên bản không phải là một ý tưởng hay. Bạn chỉ nên giữ mã nguồn của mình cùng với các tệp pom trong điều khiển nguồn. – GETah

0

này bây giờ có thể để xác định dự án đó (s) cần làm mới sau khi hoàn thành dưới Refresh tab trong Run configuration. Bạn sẽ phải kiểm tra Refresh resources upon completion và chọn hành vi nào bên dưới.

Các vấn đề liên quan