У меня есть проект, в котором с бэкэндом Java (X) мне нужно запустить другой проект Maven (Y) (что-то вроде mvn test
).Это отлично работает с использованием ProcessBuilder.
Я также недавно добавил конфигурацию JMX для мониторинга Y-JVM, потому что может быть запущено несколько Y-проектов.Конфигурация JMX передается как переменная env MAVEN_OPS
, и у меня есть метод для генерации уникальных случайных портов в диапазоне.Я также могу подключиться к JMX через случайно сгенерированный порт из моего X-бэкэнда, но проблема в том, что это работает только тогда, когда проект находится в состоянии сборки.Сразу после того, как сборка завершена, и maven должен «запустить» службу, я получил эту ошибку:
[INFO] --- gatling-maven-plugin: 2.2.4: execute (test1)@ xxxxxxx - удаление источников из предыдущего анализа из-за несовместимого CompileSetup.
[INFO] ------------------------------------------------------------------------
[INFO] СБОЙ СТРОИТЕЛЬСТВА
[INFO] ------------------------------------------------------------------------
[INFO] Общее время:15,388 s
[INFO] Окончание: 2018-12-27T09: 31: 10 + 01: 00
[INFO] Окончательная память: 15M / 363M
[INFO] ------------------------------------------------------------------------
[ОШИБКА] Не удалось выполнить цель io.gatling: gatling-maven-plugin: 2.2.4:выполнить (test1) в проекте xxxxxxx: Xxxxxx не выполнен.Процесс завершился с ошибкой: 1 (Выходное значение: 1) -> [Справка 1] [ОШИБКА]
[ОШИБКА] Чтобы увидеть полную трассировку стека ошибок, перезапустите Maven с ключом -e,
[ОШИБКА] Перезапустите Maven, используя ключ -X, чтобы включить полное ведение журнала отладки.
[ОШИБКА]
[ОШИБКА] Для получения дополнительной информации об ошибках и возможных решениях, пожалуйста, прочитайте следующие статьи:
[ОШИБКА] [Помощь 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException Ошибка: исключение выдается агентом: java.rmi.server.ExportException: порт уже используется: xxxx;вложенное исключение: java.net.BindException: адрес уже используется (сбой привязки)
До этого момента я мог получать метрики с помощью JMX.Итак, теперь мой вопрос заключается в том, использует ли maven разные JVM в состоянии сборки и выполнения?Почему мой порт уже используется ???