Инструмент для проверки источника на наличие зависимостей от конкретных версий Java - PullRequest
5 голосов
/ 11 июня 2010

Существует ли быстрый способ (например, инструмент) обнаружить из источника (или, возможно, даже из скомпилированных классов), какие части приложения вызывают методы API Java, которые реализованы только в конкретной версии Java?(например, какие части моего приложения специфичны для Java6)

Не обязательно прыгать через все ClassMismatchErrors и избегать метода проб и ошибок.Допустим, я хочу задокументировать, какие части приложения не будут работать, если они были написаны для, например, Java6, и я хочу запустить его в JDK версии 5.

Есть ли что-то подобное?На этот раз Google не помог, и я не нашел здесь никакого решения (действительно, редкий случай:)

Ответы [ 2 ]

3 голосов
/ 11 июня 2010

Может пригодиться Animal Sniffer , особенно его Плагин Maven .

0 голосов
/ 11 июня 2010

Если я правильно вас понимаю, то, что вы описываете, не очень хорошая идея для меня.

Звучит так, как будто вы хотите собрать какую-то библиотеку на JDK 6 (указав -target 1.5), но позвольте ей работать на JDK 5 и просто иметь определенные классы или методы здесь и там просто не работают (потому что им нужен Java6 только API). Я бы не стал этого делать. Метод, который должен работать, может по-прежнему вызывать загрузку класса, который сам содержит некоторую ссылку на класс, новый в Java 6, и Error будет выброшено.

Гораздо лучше, если вы просто выберете версию с минимальной поддерживаемой версией и будете жить с ней.

...