2011-10-13 20 views
10

Tôi có hai vấn đề rất khó chịu với tích hợp Maven-Eclipse, đôi khi nó loại bỏ tất cả tài nguyên của tôi trong tài nguyên src/main/resources và src/test/resources từ đường dẫn xây dựng.Maven/M2Eclipse không bao gồm tài nguyên của tôi mọi lúc

Nếu tôi kiểm tra "Thuộc tính >> Đường dẫn tạo Java >> Nguồn" Tôi có thể thấy hai thư mục này có "Đã loại trừ: **".

Sự cố có thể dễ dàng được giải quyết bằng cách nhấp vào "Xóa" trên các loại trừ, nhưng nó thực sự thực sự bực bội.

Thiết lập dự án rất đơn giản, nó có một số mô-đun và mô-đun phụ, nhưng không có gì lạ mắt. Tôi không có bất kỳ tùy chọn cấu hình nào trong tệp pom.xml của tôi về tài nguyên, nhật thực hay bất kỳ thứ gì (có lẽ tôi nên?).

Vấn đề khác là Eclipse giữ các cảnh báo báo cáo trong thư mục "đích" (trong chế độ xem "Vấn đề"), nơi mà nó không nên đưa ra một xác chết ngay từ đầu.

Mọi trợ giúp đều được đánh giá cao.

Cảm ơn là trước, Đánh dấu

Ps: SpringSource Tool Suite 2.7.0.RELEASE, Maven Integration cho Eclipse 0.12.1.20110112, Maven 2.2.1

+0

Bạn đã được giải quyết chưa? –

Trả lời

6

Đây là hành vi đúng. Phiên bản hiện tại của M2E cung cấp đóng góp của riêng họ cho quá trình xây dựng tự động bên trong IDE Eclipse. Quá trình xây dựng này sẽ tính đến vòng đời của maven để tạo ra tài nguyên và các tài nguyên quy trình, v.v ... nghĩa là một số dự án có các trình cắm thêm tạo ra các tài nguyên từ cấu hình và được đặt trong thư mục đầu ra được biên dịch.

Cơ chế bạn đang xem trong Đường dẫn xây dựng chỉ liên quan đến các IDE Eclipse được xây dựng trong cơ chế để biên dịch/lắp ráp một tập hợp các thư mục nguồn đầu vào vào các thư mục đầu ra. Nếu cả Maven và Eclipse đã làm điều này thì sẽ có xung đột/vấn đề.

Có một liên kết trong M2E hỏi thường gặp về điểm này chính xác http://wiki.eclipse.org/M2E_FAQ#Why_resource_folders_in_Java_project_have_excluded.3D.22.2A.22

Nếu bạn đang thực sự gặp vấn đề với các nguồn lực không được sao chép có lẽ chúng ta có thể làm việc thông qua tại sao đó là (vì đó là một vấn đề khác), nhưng bạn câu hỏi chính là về một điểm hỏi đáp M2E phổ biến.

Có thể bạn muốn nâng cấp lên org.eclipse.m2e và Indigo vì rất nhiều vấn đề về maven phức tạp/sử dụng tôi hầu như đã được giải quyết hoặc có giải pháp được giải thích.

.

Tôi khuyên bạn nên thực hiện "Run As -> Maven -> clean" và sau đó là "Project -> Clean", sau đó bật tự động bulding (đây là để cho phép xây dựng tự động dựa trên Eclipse diễn ra, không sử dụng Run As -> Maven để xây dựng để kiểm tra điểm này). Bây giờ mở một trình quản lý tệp bên ngoài nhật thực và kiểm tra thủ công thư mục đầu ra cho các tài nguyên mà bạn không nghĩ là đang được sao chép. Bạn nên tìm thấy họ đang có chỉ giống nhau.

.

Tôi đồng ý với cảnh báo (có thể xác thực) về các mục trong thư mục target/** và trong khi Eclipse có cách để loại trừ thư mục đích/** khỏi việc xác thực tùy chọn này không vượt quá dự án sạch (khi nào thư mục đích bị xóa).

Vì vậy, có phần hơi khó chịu khi luôn chờ xác thực các mục trong một dự án lớn.

Có lẽ tôi cố gắng xem liệu có thể tạo trình kết nối Eclipse Maven Eclipse được cung cấp để thực hiện điều này tức là gắn vào vòng đời xây dựng và tự động áp dụng Loại trừ xác thực trên thư mục đích hay không.

+0

Cảm ơn bạn rất nhiều vì câu trả lời chi tiết của bạn. – nihilist84

+2

Tôi vẫn có loại trừ ** và tôi không có bất kỳ câu trả lời nào để sửa chữa ... – blackuprise

+0

loại trừ **, là chính xác và vì nó phải là, bạn rõ ràng không hiểu giải thích tại sao lại chính xác, hãy nghiên cứu và đọc lại. –

0

T_T không phải là giải pháp tốt. tài nguyên không được sao chép mà không có maven-update


Tài nguyên maven: được đánh dấu giai đoạn bị bỏ qua trong vòng đời Việc ánh xạ sẽ gây ra vấn đề này.

Như Miles đã chỉ ra ở trên, nhật thực không sao chép tài nguyên vì nó giả định maven sẽ làm điều đó cho bạn. Sau đó, nếu tài nguyên: tài nguyên pha mà làm công việc trong maven không được thực hiện, bạn nhận được một tập tin không tìm thấy ngoại lệ khi chạy.

để kiểm tra điều này mở

dự án-> Properties-> maven-> vòng đời mapping

và xem liệu các nguồn lực: nguồn lực được đánh dấu bỏ qua hay không.

để giải quyết nó Windows-> preference-> maven-> vòng đời mapping-> workspace mở vòng đời ánh xạ siêu dữ liệu

sau đó thay đổi

<action> 
    <ignore /> 
    </action> 

để

<action> 
    <execute /> 
    </action> 

cho mục tiêu resources

tải lại siêu dữ liệu & cập nhật dự án maven

nên giải quyết vấn đề.

+0

FWIW bạn chắc chắn sẽ cài đặt m2e connector cho build-helper-maven-plugin? Bạn vẫn yêu cầu câu trả lời ở trên? Như tôi đã hiểu, điều này làm cho rất nhiều mục tiêu/plugin ảnh hưởng đến classpath/building chỉ hoạt động như mong đợi. –

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