Tôi đang cập nhật dự án hiện có từ GWT 1.5.2 lên GWT 2.0.0. Chúng ta sử dụng maven 2 để quản lý các phụ thuộc của chúng ta và làm tất cả phát triển của chúng ta trong Eclipse 3.5.Làm cách nào để có được các phụ thuộc được quản lý của maven được sao chép vào war web-inf lib để tôi có thể chạy ứng dụng GWT 2.0 của mình trong chế độ gỡ lỗi trong Eclipse?
Vì chúng tôi sử dụng maven để quản lý các phụ thuộc của mình, tôi không có tất cả các lọ đó trong thư mục war \ web-inf \ lib như GWT chỉ định. Thay vào đó, họ đang ở trong kho lưu trữ maven, chỉ nơi maven thích chúng. Tôi đã thiết lập dự án để maven có thể xây dựng và khởi chạy thành công ở chế độ dev hoặc web và ứng dụng chạy một cách chính xác.
Vấn đề là khi tôi khởi chạy từ Eclipse, tôi nhận được một java.lang.NoClassDefFoundError. Nếu tôi tự sao chép các phụ thuộc của tôi vào war \ web-inf \ lib trước khi khởi chạy, mọi thứ đều chạy tốt, nhưng điều đó không cho vay chính nó vào một giải pháp dài hạn. Đầu tiên, nếu tôi kiểm tra tất cả các lọ đó trong điều khiển phiên bản của chúng ta, điều đó sẽ phá hủy phần lớn giá trị chúng ta nhận được từ maven. Như khó chịu như maven có thể được, mương nó không phải là câu trả lời. Thứ hai, có các nhà phát triển sao chép thủ công chúng trên mỗi lần họ muốn gỡ lỗi một cái gì đó là vô lý.
Vì vậy, tôi có thể lấy Eclipse sao chép các phụ thuộc vào chiến tranh \ web-inf \ lib trước khi khởi chạy không? Có một giải pháp thay thế mà tôi đang thiếu?
Cảm ơn,
Tony
Tôi đã thêm plugin m2eclipse vào Eclipse, nhưng điều đó dường như đã đưa Eclipse đến đầu gối của nó. Nó bây giờ bị mắc kẹt "Cập nhật maven Dependencies" khi khởi động. Khi tôi đã cài đặt và chạy Eclipse mới, tôi sẽ thử. – Tony
Kho lưu trữ maven cục bộ có thể làm giảm bớt vấn đề cập nhật phụ thuộc. Tôi khuyên bạn nên thiết lập một phiên bản của Nexus http://nexus.sonatype.org/ và đặt cài đặt maven của bạn để sử dụng mirrorOf = * -> repo nexus địa phương của bạn. Bản cập nhật ban đầu sẽ mất một chút thời gian, nhưng sau đó phần còn lại của nhóm của bạn sẽ tải xuống các tạo phẩm được lưu trữ cục bộ, với lợi ích cho bạn, nhóm của bạn, repo maven công cộng và phần còn lại của internet. – crowne
Plugin m2eclipse chắc chắn sẽ làm cho cuộc sống của bạn dễ dàng hơn nhiều. Nó tìm thấy các tham chiếu giữa các dự án và liên kết chúng thông qua Eclipse, do đó bạn không cần phải đi đến dòng lệnh để xây dựng lại các ảnh chụp nhanh mỗi khi bạn sửa đổi một dự án phụ thuộc. Nó cũng tạo ra classpath của bạn cho bạn và giữ nó cập nhật với tệp pom. Vấn đề duy nhất tôi đã thấy là đôi khi nó không kéo xuống các phụ thuộc mới, vì vậy bạn phải làm một 'mvn dependency: resolve' từ dòng lệnh khi bạn thêm một phụ thuộc mới không có trong kho lưu trữ cục bộ của bạn. –