digital-garden/dev/snippet/Дебаг приложения на этапе компиляции IntelliJ IDEA.md
Struchkov Mark d0de9bc884
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
Исправление форматирования
2024-09-17 21:10:50 +03:00

59 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
aliases:
tags:
- maturity/🌱
date: 2024-04-07
zero-link:
- "[[../../meta/zero/00 Снипеты для Java|00 Снипеты для Java]]"
parents:
linked:
---
Я столкнулся с необходимостью дебага annotation processor, когда писал библиотеку со своими аннотациями и обработчиками к ним. Проблема заключается в том, что обработка аннотаций происходит на этапе компиляции.
## 1. Создание Remote JVM Debug Configuration
Создаем новую конфигурацию. Вам нужно найти: “Remote JVM Debug”.
![](../../meta/files/images/Pasted%20image%2020240407184559.png)
Выберите режим “Attach to remote JVM” и любой доступный порт, например 8000.
![](../../meta/files/images/Pasted%20image%2020240407184611.png)
## 2. Убедитесь, что процесс сборки использует ваш порт
Нажмите `Ctrl+Shift+A` и найдите пункт “Edit Custom VM Options…”
Добавьте новую строку `-Dcompiler.process.debug.port=8000` и ==перезапустите IDEA.==
![](../../meta/files/images/Pasted%20image%2020240407184626.png)
## 3. Включите “Debug build process”
Нажмите `Ctrl+Shift+A` и пункт “Debug build process”.
> [!WARNING]
> Вам нужно будет повторять этот шаг каждый раз при перезапуске IDEA.
## 4. Дебажим
Сначала установите точку останова в коде обработчика аннотаций.
![](Pasted%20image%2020240407184705.png)
Для запуска вашего обработчика аннотаций пересоберите проект: `Build -> Rebuild Project`. ==При выборе пункта Build Project обработчик аннотации может не запуститься.==
Процесс сборки приостановится, и вы сможете подключить отладчик:
![](../../meta/files/images/Pasted%20image%2020240407184716.png)
Теперь запустите добавленную вами конфигурацию в режиме Debug (Shift+F9). Javac возобновит компиляцию. IDEA теперь должна остановиться на установленной вами точке останова.
![](../../meta/files/images/Pasted%20image%2020240407184727.png)
На этом все, теперь вы можете отлаживать ваши обработчики аннотаций.
***
## Мета информация
**Область**:: [[../../meta/zero/00 Снипеты для Java|00 Снипеты для Java]]
**Родитель**::
**Источник**::
**Автор**::
**Создана**:: [[2024-04-07]]
### Дополнительные материалы
-
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->