Я знал, как это легко, только когда сделал это
Предыстория
Пока я расследовал загадочное отсутствие git.build.number.unique
, мне пришлось отлаживать плагин git-commit-id, чтобы выяснить, как исключить избыточное свойство и как имитировать условие GitLab CI/CD.
Даже если бы я знал лучше и уделял больше внимания его документации, знание того, как отлаживать плагин Maven, все равно является полезным навыком и хорошим опытом. И поделиться!
Найдите исходный код и проверьте правильную версию
Это первый шаг процесса отладки. Популярные плагины должно быть легко найти, большинство из них, вероятно, имеют открытый исходный код и доступны в Интернете.
Получение правильной версии важно, даже если ее легко упустить из виду. Я сделал эту ошибку, просматривая версию 5 исходного кода плагина «git-commit-id» в поисках чего-то, что изменилось с версии 2.x.
В одном из репозиториев Maven есть как минимум .jar
, .sources.jar
пакетов вашего плагина. Последний из них великолепен, первый может потребовать декомпиляции, чтобы его можно было прочитать.
Включить режим отладки Maven
Вы можете использовать переменную среды MAVEN_OPTS
, чтобы включить режим отладки во время выполнения Maven.
set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
Если вы используете оболочку Maven, предоставленную Spring Initializr, просто раскомментируйте следующую строку в mvnw
или mvnw.cmd
:
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
Не стесняйтесь выбирать другой номер порта, если 8000
уже занят.
Затем запустите команду maven. Команда будет ждать отладчика сразу после запуска.
Запустите удаленный отладчик в исходном коде плагина
Конечно, вы должны использовать IDE с хорошей поддержкой удаленной отладки. Я использовал IntelliJ, но уверен, что Eclipse также предлагает отличную поддержку.
Установите несколько точек останова и запустите отладчик
Обратите внимание, как ваш командный терминал Maven был разблокирован вскоре после запуска удаленного отладчика, а затем снова приостановлен, когда была достигнута точка останова.
Удачной отладки!
Повышение уровня кодирования
Спасибо, что являетесь частью нашего сообщества! Перед тем, как ты уйдешь:
- 👏 Хлопайте за историю и подписывайтесь на автора 👉
- 📰 Смотрите больше контента в публикации Level Up Coding
- 💰 Бесплатный курс собеседования по программированию ⇒ Просмотреть курс
- 🔔 Подписывайтесь на нас: Twitter | ЛинкедИн | "Новостная рассылка"
🚀👉 Присоединяйтесь к коллективу талантов Level Up и найдите прекрасную работу