Для запуска одного из помпонентов, к примеру socket-сервера, в Spring.io обычно создают реализацию интерфейса CommandLineRunner. Часто возникает проблема, когда при сборке и упаковке проекта, сервер также начинает запускаться.
Допустим, нам требуется собственный websocket-сервер. Сам проект собирается с использованием spring-boot и стартует стандартным способом.
Мы реализовали CommandLineRunner чтобы сервер успешно запускался.
При вызове mvn package
, если у вас есть хотя бы модульные тесты, сервер начнет запускаться. Дело в том, что перед файзой package
запускается фаза test. Если вы в тестовой конфигурации забыли исключить компонент, реализующий CommandLineRunner, Spring его запустит.
Все компоненты, реализующие CommandLineRunner можно исключить из тестовой конфигурации следующим образом.