2009-10-08 25 views
5

Khi phát triển các ứng dụng web Maven, tôi thường sử dụng số jetty-maven-plugin để nhanh chóng khởi chạy ứng dụng của mình để thử nghiệm và gỡ lỗi cục bộ. Sử dụng khởi chạy với m2eclipse có nhược điểm không chính xác bao gồm tất cả các nguồn để gỡ lỗi, mặc dù chúng được tải xuống bởi Maven (xem Source lookup does not seem to work).Cách ưa thích để phát triển các ứng dụng web với m2eclipse

Cách ưa thích để gỡ lỗi các ứng dụng web Maven trong Eclipse là gì? Tôi đặc biệt đánh giá cao các cấu hình hoạt động với gwt-maven-plugin.

+0

Có thêm ưu điểm nào sử dụng m2eclipse trên các công cụ WTP để thử nghiệm và gỡ lỗi các ứng dụng web trong nhật thực không? – cetnar

+0

@cetnar: m2eclipse cho phép tôi sử dụng maven cho mọi thứ mavenish, chẳng hạn như phụ thuộc, bổ sung, v.v. –

Trả lời

7

Cách ưa thích của tôi để phát triển các ứng dụng web với m2eclipse là ... không sử dụng nó. Thay vào đó, tôi sử dụng phương pháp mô tả trong Debugging with the Maven Jetty Plugin in Eclipse mà tôi trích dẫn dưới đây:

Bước 1

Đến Run Tools/External/External cụ ... "mục trình đơn trên" Chạy "menu bar. Chọn" Chương trình "và nhấp vào nút" "Mới". Trên tab "Chính", điền vào trong "Vị trí:" làm đường dẫn đầy đủ đến "mvn" thực thi của bạn. Đối với " Working Directory: "chọn không gian làm việc khớp với ứng dụng web của bạn. Đối với "Đối số:" thêm jetty:run.

Di chuyển đến tab "Môi trường" và nhấp vào nút "New" để thêm một biến mới có tên MAVEN_OPTS với giá trị :

-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=y 

Nếu bạn cung cấp suspend=n thay vì suspend=y bạn có thể bắt đầu ngay lập tức mà không cần chạy trình gỡ rối và khởi chạy trình gỡ lỗi bất cứ lúc nào bạn thực sự muốn gỡ lỗi.

Bước 2

Sau đó, kéo lên "Run/Debug/Debug ..." mục trình đơn và chọn "Remote Java Application" và nhấp vào nút "New". Điền vào hộp thoại bằng cách chọn dự án webapp của bạn cho trường "Project:" và đảm bảo bạn là sử dụng cùng một số cổng với tên được chỉ định trong thuộc tính address= ở trên.

Bây giờ tất cả các bạn cần làm là để Run/Tools và chọn tên của việc thiết lập công cụ maven bạn đã tạo trong bước 1 để bắt đầu các plugin và sau đó Run/Debug và chọn tên của gỡ lỗi thiết lập bạn thiết lập trong bước 2.

Từ hướng dẫn được cung cấp bởi Rolf Strijdhorst trên Maven gửi thư danh sách

Dừng Jetty

Để ngăn chặn các máy chủ cầu cảng các "Cho phép chấm dứt VM từ xa" nên hộp thoại kiểm tra trong gỡ lỗi trong Bước 2. Khi bạn có máy chủ cầu cảng đang chạy và trình gỡ lỗi kết nối bạn có thể chuyển sang phối cảnh gỡ lỗi. Trong giao diện gỡ lỗi, nhấp chuột phải vào Máy khách Java HotSpot (TM) VM [localhost: 4000] và chọn chấm dứt. Điều này sẽ dừng trình gỡ rối và máy chủ cầu nối.

+0

Tốt hơn nhiều, cảm ơn bạn. –

3

Cố gắng tránh viết mã cần một loại chứa nào đó để gỡ lỗi. Luôn viết mã có thể chạy độc lập và bọc nó trong một lớp rất mỏng để triển khai (lớp mỏng -> vài dòng mã -> vài lỗi).

Nếu bạn thực sự phải, hãy thử MockRunner để mô phỏng máy chủ ứng dụng.

Ngoài ra, bạn có thể thêm các nguồn vào thuộc tính dự án theo cách thủ công.

+0

Cảm ơn câu trả lời. Tôi đồng ý với tuyên bố của bạn về phân lớp, nhưng đôi khi tôi cần toàn bộ ứng dụng đang chạy để gỡ lỗi các vấn đề tích hợp và đó là khi tìm kiếm nguồn hữu ích nhất. –

+0

Trong trường hợp đó, hãy đặt điểm ngắt và thêm nguồn vào thuộc tính dự án khi bạn gặp phải chế độ xem "nguồn bị thiếu". Đó là một chút công việc thủ công cho đến khi phiên bản tiếp theo của m2eclipse được phát hành. –

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