Как ускорить развертывание с maven pax: предоставление

Я недавно начал работать над проектом с около 40 другими разработчиками. Мы используем OSGi вместе с Apache Felix. Мы строим и разворачиваем, используя Maven с плагином maven-pax. OSGi и pax оба очень новы для меня, поэтому я не знаю никаких подробностей о настройке проекта.

Для развертывания на своей машине я использую команды

mvn clean install
mvn pax:provision

Команда pax:provision запускает pax-runner, и последние строки в журнале следующие:

 -> Provision bundle [...., at default start level, bundle will be started, bundle will be loaded from the cache]
 -> Preparing framework [Felix 4.0.3]
 -> Downloading bundles...
 -> Using execution environment [NONE]
 -> Runner has successfully finished his job!

Listening for transport dt_socket at address: 5005

На некоторых из используемых компьютеров проходит около 30 секунд до 1 минуты после этой строки, прежде чем Apache Felix запустится и приложение станет доступным через браузер. Однако на компьютере моего коллеги это занимает около 8-9 минут, а на моем - около 16 минут.

В течение этих 16 минут нет чрезмерного использования процессора или сетевого трафика. Кажется, что ничего не происходит.

Я попытался изменить уровень ведения журнала на отладочный, что дает мне массу информации о pax-runner, но после строки "Listening for transport dt_socket..." наступает 16 минут молчания. В течение этого времени я могу подключить мой удаленный отладчик (IntelliJ) к серверу, поэтому что-то должно быть запущено.

Похоже, никто из моих коллег не знает, что происходит за это время и почему это занимает так много времени для нас двоих, но пролетает мимо для других людей. Google тоже не дает мне никаких подсказок, поэтому я решил спросить здесь.

Это довольно сложная настройка проекта, поэтому я хотел бы программировать небольшие фрагменты за раз и много тестировать, но, конечно, необходимость подождать 16 минут, чтобы протестировать небольшие изменения, снижает производительность.

Я надеюсь, что кто-то может помочь мне с этим. Спасибо!

2 ответа

Я бы сказал, что вы включили отладочный агент с параметром suspend, установленным в true. Ищите что-то вроде этого в ваших poms:

      <provision>
        <param>--vmOptions="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"</param>
      </provision>

+ Изменить suspend=y в suspend=n,

Я знаю, что это старый вопрос, но, возможно, у кого-то возникнут похожие проблемы.

Выясните, все ли пакеты хорошо воспитаны. Либо зайдя в консоль Феликса и введя команду "ps", "scr info", либо вставьте в веб-консоль.

После того, как все пакеты будут разрешены и активированы, начните просматривать журналы / события, относящиеся к конкретному приложению, чтобы определить, работает ли он.

Другие вопросы по тегам