0

Как отлаживать аннотационные процессоры Java в IntelliJ?

15

Как отладить аннотационные процессоры Java в IntelliJ?

Предпочтительно использовать IDEA IntelliJ. Я пытался установить точку останова внутри процессора и запустить, но точка останова не срабатывает. Как правильно настроить отладку аннотационных процессоров в данном IDE?

2 ответ(ов)

0

Да, вы можете запустить javac и отладить его, как указано выше. Однако в моем случае было утомительно вручную указывать полный classpath, поэтому я решил оставить это на откуп IDEA. Для этого в модуле, в котором я хотел применять свой процессор аннотаций, просто создайте класс с методом main.

public static void main(String[] args) {
    com.sun.tools.javac.Main.main("-proc:only",
        "-processor", "my.pkgs.MyAnnotationProcessor",
        "my/pkgs/any/ClassIWantProcess.java");
}

Чтобы это работало, нужно добавить $JAVA_HOME/lib/tools.jar в JAR'ы вашего SDK (по умолчанию он там отсутствует). Это обусловлено тем же, по какой причине сервера приложений, компилирующие JSP, нуждаются в этом JAR в своем classpath — им нужен компилятор.

После этого просто установите правильную рабочую директорию для вашей конфигурации запуска (чтобы относительный путь к файлу Java был корректным), установите точку останова в процессоре и отлаживайте по своему усмотрению!

Преимущество — classpath уже задан IDEA и используется "внутренним" javac, поскольку в этом случае он не является отдельным процессом. Я думаю, это можно адаптировать и для других IDE.

0

Я нашел следующий ресурс, который может быть полезен: http://code.google.com/p/acris/wiki/AnnotationProcessing_DebuggingEclipse

Автор объясняет пошагово, как отлаживать процессоры аннотаций в Eclipse.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь