Я использую maven / surefire / eclipse, чтобы написать код, а затем протестировать / отладить его.
Стандартный способ сделать это - использовать свойство maven.surefire.debug. По умолчанию, когда это свойство включено, maven начинает прослушивать порт 5005, и я могу подключиться к отлаженному процессу с помощью удаленного отладчика. По завершении теста удаленный отладчик отключается от сервера.
Этот процесс включает в себя два шага при использовании в eclipse:
- Run Maven
- Подключение с использованием конфигурации удаленного запуска
Чего я хотел бы добиться, так это уменьшить его до:
- Run Maven
Я обнаружил, что установка свойства maven.surefire.debug для некоторых параметров удаленной отладки изменит поведение удаленной отладки. Таким образом, когда я указываю, т.е.
-Dmaven.surefire.debug = "- Xdebug -Xrunjdwp: transport = dt_socket, server = n, address = 5005"
, затем build попытается подключиться к моему процессу eclipse, прослушивающему порт 5005. Таким образом, я инвертирую стандартные роли клиент / сервер maven и eclipse.
Однако есть одна большая проблема с этим подходом. Это ничего не дает, так как после завершения сборки maven eclipse перестает слушать порт сервера. Это та часть, которую я не понимаю.
Когда я подключаюсь как клиент отладки к eclipse, например, к серверу WebLogic, это позволяет мне свободно подключаться / отключаться столько раз, сколько я хочу.
Кто-нибудь знает, нормально ли это, или, может быть, мне нужно указать дополнительные параметры, чтобы упростить отладку тестов maven?