Я знал, как это легко, только когда сделал это

Предыстория

Пока я расследовал загадочное отсутствие 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 и найдите прекрасную работу