diff --git a/dev/snippet/Дебаг приложения на этапе компиляции IntelliJ IDEA.md b/dev/snippet/Дебаг приложения на этапе компиляции IntelliJ IDEA.md new file mode 100644 index 00000000..af76a746 --- /dev/null +++ b/dev/snippet/Дебаг приложения на этапе компиляции IntelliJ IDEA.md @@ -0,0 +1,49 @@ +--- +aliases: +tags: + - maturity/🌱 +date: + - - 2024-04-07 +zero-link: + - "[[../../meta/zero/00 Снипеты для Java|00 Снипеты для Java]]" +parents: +linked: +link: https://struchkov.dev/blog/ru/java-debugging-annotation-processor/ +--- +Я столкнулся с необходимостью дебага 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) + +На этом все, теперь вы можете отлаживать ваши обработчики аннотаций. \ No newline at end of file diff --git a/meta/files/comp.flag b/meta/files/comp.flag deleted file mode 100644 index f4c6f7f1..00000000 --- a/meta/files/comp.flag +++ /dev/null @@ -1 +0,0 @@ -вторник, 3 сентября 2024 г. 14:56:39 (MSK) diff --git a/meta/files/images/Pasted image 20240407184559.png b/meta/files/images/Pasted image 20240407184559.png new file mode 100644 index 00000000..e6041ab3 Binary files /dev/null and b/meta/files/images/Pasted image 20240407184559.png differ diff --git a/meta/files/images/Pasted image 20240407184611.png b/meta/files/images/Pasted image 20240407184611.png new file mode 100644 index 00000000..ba9036b0 Binary files /dev/null and b/meta/files/images/Pasted image 20240407184611.png differ diff --git a/meta/files/images/Pasted image 20240407184626.png b/meta/files/images/Pasted image 20240407184626.png new file mode 100644 index 00000000..b2e3cccd Binary files /dev/null and b/meta/files/images/Pasted image 20240407184626.png differ diff --git a/meta/files/images/Pasted image 20240407184716.png b/meta/files/images/Pasted image 20240407184716.png new file mode 100644 index 00000000..178cda39 Binary files /dev/null and b/meta/files/images/Pasted image 20240407184716.png differ diff --git a/meta/files/images/Pasted image 20240407184727.png b/meta/files/images/Pasted image 20240407184727.png new file mode 100644 index 00000000..cf76f084 Binary files /dev/null and b/meta/files/images/Pasted image 20240407184727.png differ diff --git a/meta/zero/00 Снипеты для Java.md b/meta/zero/00 Снипеты для Java.md index 9dd5bb65..e500c383 100644 --- a/meta/zero/00 Снипеты для Java.md +++ b/meta/zero/00 Снипеты для Java.md @@ -11,4 +11,5 @@ aliases: - [Создание linux сервиса для Java приложения](../../dev/snippet/Создание%20linux%20сервиса%20для%20Java%20приложения.md) - [Игнорирование ошибок сертификата OkHttp3](../../dev/snippet/Игнорирование%20ошибок%20сертификата%20OkHttp3.md) - [Mock конфигурация Oauth2 для SpringBoot](../../dev/snippet/Mock%20конфигурация%20Oauth2%20для%20SpringBoot.md) -- [Несколько подключений к базе H2](../../dev/snippet/Несколько%20подключений%20к%20базе%20H2.md) \ No newline at end of file +- [Несколько подключений к базе H2](../../dev/snippet/Несколько%20подключений%20к%20базе%20H2.md) +- [Дебаг приложения на этапе компиляции IntelliJ IDEA](../../dev/snippet/Дебаг%20приложения%20на%20этапе%20компиляции%20IntelliJ%20IDEA.md) \ No newline at end of file