2010-02-11 20 views
9

Tôi phải dọn dẹp một dự án cũ và kiến ​​thức chung ở đây là dự án chứa rất nhiều mã không sử dụng mà chúng tôi có thể xóa. Điều đó sẽ tiết kiệm một số nhức đầu và bảo trì dễ dàng hơn.Tìm mã không sử dụng trong dự án được mô đun hoá Maven

Tôi đã tìm thấy plugin Công cụ cốt lõi của Eclipse trông giống như một công cụ tuyệt vời, nhưng trong trường hợp của chúng tôi, chúng tôi có một dự án Maven2 được chia thành 3 mô-đun. Tôi dường như không thể chạy "tìm kiếm các thành viên không được tham chiếu" trên dự án gốc và khi tôi chạy nó trên một trong các mô-đun, nó bỏ qua hoàn toàn thực tế là các mô-đun khác có thể đang sử dụng một số thành viên công cộng .. .

Bất kỳ ai đã khắc phục vấn đề đó? Hay tìm ra cách khác để giải quyết vấn đề này?

Cảm ơn.

Trả lời

9

khi tôi chạy nó trên một trong những module nó bỏ qua hoàn toàn thực tế là các module khác có thể sử dụng một số các thành viên cộng đồng ...

Vâng, đó chính là vấn đề, và đó là lý do tại sao có không có cách xác định thực sự để tìm mã không sử dụng như được nhắc bởi @cletus trong this previous answer.

Mặc dù vậy, các công cụ như PMD (và quy tắc unusedcode), Findbugs có thể trợ giúp. Các IDE như IntelliJ (các kiểm tra mã Java hoàn toàn có sẵn trong phiên bản cộng đồng) và Eclipse cũng có hỗ trợ tốt cho việc này.

Đối với IntelliJ, có một cái nhìn tại Global unused declaration inspection:

Nhờ những cải tiến trong các chỉ số nội bộ phía sau động cơ cái nhìn sâu sắc đang IDEA Intellij, Maia sẽ có thể ngay lập tức làm nổi bật một số lớp học java, phương pháp và các lĩnh vực mà không được sử dụng trong toàn bộ dự án.

Đối với Eclipse, có UCDetector plugin:

UCDetector (hưởng ứng nhiệt liệt Mã Detector) là một mã nguồn mở Eclipse Plugin Tool để tìm hưởng ứng nhiệt liệt (chết) mã java công cộng. Nó cũng cố gắng để làm cho mã cuối cùng, bảo vệ hoặc tư nhân.

alt text http://www.ucdetector.org/images/popup.png

Nhưng tôi thú nhận rằng tôi không chắc chắn nếu có những giải pháp thực sự sẽ làm việc trên mô-đun. Trong trường hợp đó, gợi ý của tôi là đặt tất cả mã trong một dự án "janitor" (vâng, điều này thật xấu xí nhưng tốt ...) và chạy các công cụ trên đó (và làm sạch các mô-đun dựa trên các kết quả thu được).

+0

Đó là câu trả lời rất hay và chi tiết.Cảm ơn Pascal. – Lancelot

+0

@Lancelot Bạn được chào đón. Chúc may mắn! –

1

Tôi đã sử dụng plugin Công cụ cốt lõi để tìm mã không sử dụng trên nhiều mô-đun maven khác nhau. Đường dẫn xây dựng cho mỗi dự án phải được thiết lập đúng cách để Eclipse biết rằng có sự phụ thuộc giữa các dự án. Nếu bạn nhập các dự án bằng cách sử dụng plugin m2eclipse, nó sẽ tự động thiết lập các dự án này.

Tôi nghĩ cách mà plugin Công cụ cốt lõi hoạt động là nó tự động hóa quy trình mà chế độ xem "Phân cấp cuộc gọi" thực hiện. Chọn một phương thức và chạy "Phân cấp cuộc gọi" (ctrl-alt-H) nếu không có người gọi thì Công cụ cốt lõi nên đánh dấu phương thức là chưa được gộp.

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