2010-06-11 39 views
5

Có cách nhanh chóng (ví dụ: công cụ) để phát hiện, từ nguồn (hoặc thậm chí từ các lớp được biên dịch), mà các phần của một ứng dụng gọi là các phương thức Java API. trong một phiên bản Java cụ thể? (ví dụ: các phần của ứng dụng của tôi là Java6 cụ thể)Công cụ kiểm tra nguồn cho phụ thuộc vào các phiên bản Java cụ thể

Tôi không nhất thiết muốn nhảy qua tất cả ClassMismatchErrors và tránh phương pháp thử và lỗi. Giả sử tôi chỉ muốn ghi lại những phần nào của một ứng dụng sẽ không hoạt động nếu chúng được viết cho, ví dụ, Java6 và tôi muốn chạy nó trong JDK phiên bản 5.

Có điều gì tương tự không? Google không giúp đỡ lần này, cũng như tôi không tìm thấy giải pháp nào ở đây (một trường hợp hiếm hoi thực sự :)

Trả lời

3

Animal Sniffer có thể hữu ích cho việc này, đặc biệt là Maven plugin.

+0

wow đây chính xác là những gì tôi đang tìm kiếm, cảm ơn câu trả lời nhanh và hữu ích! Hudson thực sự là một phần mềm tuyệt vời, không chỉ như một máy chủ CI, có vẻ như :) – Gregor

+0

btw dự án đã chuyển đến Codehaus, nơi đã có phiên bản 1.5: http://mojo.codehaus.org/animal -sniffer-maven-plugin/ – Gregor

0

Nếu tôi hiểu chính xác, những gì bạn mô tả không giống như một ý tưởng hay đối với tôi. Có vẻ như bạn muốn xây dựng một số thư viện trên JDK 6 (chỉ rõ mục tiêu 1.5), nhưng hãy để nó chạy trên JDK 5 và chỉ có một số lớp hoặc phương pháp ở đây và không hoạt động (vì chúng cần Java6). chỉ có API). Tôi sẽ không làm điều này. Phương thức mà nên công việc vẫn có thể kích hoạt một lớp được tải tự chứa một số tham chiếu vào một lớp mới trong Java 6 và một số Error sẽ bị ném.

Sẽ tốt hơn nếu bạn chỉ chọn phiên bản nào là phiên bản được hỗ trợ tối thiểu của bạn và sống với phiên bản đó.

+0

Cảm ơn vì thức ăn bổ sung cho suy nghĩ, Kevin. Tôi không có nghĩa là viết phần mềm mới giảm xuống từ JDK6 đến JDK5 (tuy nhiên điều này có thể thực sự hữu ích, tiết kiệm rằng Animal Sniffer phục vụ cho các phụ thuộc theo cách bạn mô tả). Tôi đang tìm kiếm một công cụ để phân tích mã hiện có để cung cấp cho tôi tổng quan nhanh về những gì sẽ hoạt động và những gì sẽ không xảy ra khi triển khai ứng dụng JDK6 đang được đề cập trên môi trường JDK5, tôi có thể ước tính những thay đổi cần thiết để thích ứng với phiên bản cũ hơn. – Gregor

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