Перейти к содержанию
Авторизация  
lvlkoo

Запуск сборки Lineage 2 в режиме отладки

Рекомендуемые сообщения

Запуск сборки Lineage 2 в режиме отладки


Приветствую всех начинающих JAVA разработчиков.
Гайд предназначен для тех, кто все еще пытается дебажить c помощью System.out.println, но уже осведомлен в целом о JAVA разработке, и немного умеет пользоваться IDE Дебагинг один из важнейших и трудозатратных процессов после самой разработки, и очень важно чтобы этот процесс был максимально удобен для разработчика.
Большинство современных IDE имеют встроенный функционал отладки, который позволяет приостаналивать приложение в определенные моменты выполнения и просматривать\изменять память с помощью т.н брейкпоинтов. В данном гайде я расскажу как запускать ява эмулятор или "сборку" в режиме отладки и использовать инструменты отладчика на примере IDE IntelliJ IDEA. Часть #1 - "Быстрый запуск, удаленная отладка" Я расскажу о двух вариантах отладки, первым из них будет "удаленная отладка"
Этот вариант, позволяет вашей IDE удаленно подключаться к приложению с помощью спец. инструментов java
Пусть слово "удаленная" вас не пугает, формально это будет сетевое подключение, но происходить оно будет локально в пределах вашего ПК. Шаг 1. Параметры запуска.
Для того, чтобы запустить Ваш сервер в режиме ожидающий отладки, в параметры запуска ява приложение необходимо добавить следующие значения
Это делается соотвественно в .bat или .sh файле -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=7456 Шаг 2. Добавляем конфигурацию запуска в IntelliJ IDEA В главном меню переходим в раздел Run -> Edit configuration В левом верхнем углу нажимаем на "плюсик" и из выпадающего списка выбираем "Remote"
Пишем удобное для Вас название (к примеру "DebugGameserverRemote", в поле "Host" вводим "localhost, в поле "Port" - "7456"
Сохраняем. Шаг 3. Запуск Перед запуском сборки убедитесь, что исполняться будет последнее собраное ядро (если что-то изменяли, пересоберите ядро и замените в папке с сервером).
Запускайте сборку с помощь .bat или .sh файла, вы получите сообщение о том, что ожидаеться подключение дебагера.
В IntelliJ IDEA в главном меню переходим в раздел Run, и выбираем "Debug DebugGameserverRemote" - Или там будет любое название, которое вы написали при создании конфигурации.
IDE подключилась к приложению, сборка продолжает запускаться. Можете расставлять брейпоинты и дебажить.
После изменения какого либо класса, для того, чтобы брейпоинты в этом классе сработали - нужно соотвественно собрать новое ядро и заменить в папке с вашей тестовой сборкой. Часть #2 - "Автоматизация или "Лень - двигатель прогресса"
Каждый раз копировать новое ядро, запускать сборку с помощью .bat\.sh файла - нормально, но со временем понимаешь, что и это не совсем удобно. Следующий вариант запуска в режиме отладки - запуск прямо из IntelliJ IDEA. Дополнительно перед каждым запуском будем автоматически собирать новое ядро Шаг 1. Артефакты. Собирать будем средствами IDE, это еще незывают "сборкой артефакта"
В главном меню переходим в раздел File -> Project Structure
Выбираем раздел Artifacts, нажимаем на плюсик для создания нового артефакта, выбераем JAR -> From module with dependencies
Пишем удобное название ( к примеру "gameserver:jar-test_server")
В поле Output Directory указываем путь, где лежит ядро вашей тестовой сборки, в моем случае это "D:\test_server\lib"
В поле Main class вводим полное название главного класса (класс, который содержит метод main()), подсмотреть его можно из .bat\.sh файла
Сохраняем.     Таким образом, можно собирать любые JAR библиотеки, отказывашись от других сборщиков типа ANT Шаг 2. Добавляем конфигурацию запуска в IntelliJ IDEA В главном меню переходим в раздел Run -> Edit configuration (см выше, в первой части)
В левом верхнем углу нажимаем на "плюсик" и из выпадающего списка выбераем "Application"
Вводим удобное для Вас название (к примеру "Gameserver-test_server")
В поле Main class вводим полное название главного класса (класс, который содержит метод main()), подсмотреть его можно из .bat\.sh файла
В поле VM options нужно прописать classpath (-cp) с нужными зависимостями для вашей сборки, а так же другие параметры при необходимости. Подсмотреть эти параметры можно в .bat\.sh файле
В поле Working Directory указываем путь, к корневой папке, из которой запускается ваш тестовый гейм-сервер (путь, где лежат .bat\.sh файлы запуска). В моем случае это "D:\test_server\gameserver"
Use classpath of module - выбираем модуль с исходниками геймсервера В самом низу окна есть раздел "Before launch" - действия, которые будут выполняться перед запуском (там уже по умолчанию должен быть Build). Нажимаем на зеленый плюсик, выбираем "Build artifacts"
в появившемся окне выбираем ранее созданный артефакт "gameserver:jar-test_server" Конфигурация готова, сохраняем ПС. на ворнинг на моем скрине не обращайте внимания, глюк IDE после переименования пакета. У вас ошибок и варнингов быть не должно. Шаг 3. Запуск В IntelliJ IDEA в главном меню переходим в раздел Run, и выбираем "Debug Gameserver-test_server" - Или там будет любое название, которое вы написали при создании конфигурации (см. пример выше, по аналогии с первой частью)
Сборка пересобираеться, затем запускается. Можете расставлять брейпоинты и дебажить. Таким образом можно настроить билд сервера авторизации или настроить различные цепочки событий, чтобы запускать все в 1 клик.
Удачи в разработке ПС. Если кому-то будет интересно, могу написать небольшой гайд по самому процессу отладки, брейкпоинтам, условным брейкпоинтам, ватчеру и т.д

 

  • Like 2
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
33 минуты назад, Rozhek сказал:

Полезный гайд) молодец

Сам парень очень толковый, знающий своё дело!!! приходилось общаться с ним, очень приятный человек.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...