Как отлаживать аннотационные процессоры Java в IntelliJ?
Как отладить аннотационные процессоры Java в IntelliJ?
Предпочтительно использовать IDEA IntelliJ. Я пытался установить точку останова внутри процессора и запустить, но точка останова не срабатывает. Как правильно настроить отладку аннотационных процессоров в данном IDE?
2 ответ(ов)
Да, вы можете запустить 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.
Я нашел следующий ресурс, который может быть полезен: http://code.google.com/p/acris/wiki/AnnotationProcessing_DebuggingEclipse
Автор объясняет пошагово, как отлаживать процессоры аннотаций в Eclipse.
Правильный способ добавления внешних JAR-файлов (lib/*.jar) в проект IntelliJ IDEA
IntelliJ сообщает "Невозможно разрешить символ", но код все равно компилируется
Как правильно создать JAR-файлы в IntelliJ IDEA?
IntelliJ: Показать подсказки JavaDocs при наведении мыши
Сохранение состояния объекта в отладчике IntelliJ?