Ускорьте цикл разработки / развертывания / запуска с помощью Spring, Maven и Wildfly - PullRequest
0 голосов
/ 10 июля 2019

Я только недавно вошел в мир Java для своего клиента.Я имею 18-летний опыт работы в качестве разработчика .Net, но сторона Java - новинка.

Исходя из .Net, я привык ожидать, что смогу внести изменения в код, скомпилировать мой код и запустить его с отладчиком, подключенным обычно все в течение менее 30 секунд, возможно 1 минута для больших проектов, требующих полной перекомпиляции.

Я считаю, что мой текущий процесс с этим Java-проектом занимает у меня 5-6 минут.Из-за долгого времени и множества шагов я начинаю выполнять другие задачи или теряю счет того, что я делал.

Вот мой текущий процесс внесения изменений и их тестирования:

  • Внести изменения в код
  • (~ 200 с) Перекомпилировать код с помощьюMaven на основном модуле Maven mvn clean install.Если я сделаю -DskipTests, я смогу сэкономить здесь около 60 секунд.
  • (~ 5 с) Остановить сервер Wildfly
  • (~ 5 с) Скопировать файл .war из myproject\target\myproject.war в c:\wildfly\standalone\deploy\
  • (~ 90 с) Запуск сервера Wildfly c:\wildfly\bin\standalone.bat
  • Повторный вход в приложение (срок моей сессии истек)
  • Присоединение отладчика

Снова, это не только количество времени, необходимое для каждого из этих шагов, но тот факт, что существует так много шагов, и время ожидания между ними также приводит к отвлечению - в конце концов, ,кто будет сидеть и смотреть на экран в течение 3 минут компиляции ?Что бы я ни делал, я точно не собираюсь возвращаться к этому экрану в тот момент, когда компиляция завершена.Там будет потрачено впустую время.

Более того, я повторяю этот процесс каждый раз, когда хочу внести одно изменение кода.

Есть ли способоптимизировать этот процесс?Т.е.:

  • Есть ли способ присоединиться к некоторым из этих шагов
  • Можно ли ускорить процесс загрузки Wildfly?
  • Что ускорит Maven?
  • Могу ли я сделать что-то вроде «Редактировать и продолжить», существующее в .Net (т. Е. Изменения действующего кода).
  • Есть ли способ обойти необходимость повторной инициализации Wildfly при каждом развертыванииновая война?

Ответы [ 2 ]

0 голосов
/ 15 июля 2019

Зачем останавливать, перемещать архив и перезапускать сервер?

Проверьте следующий плагин maven, который позволит вам автоматизировать хотя бы эту его часть ..

https://docs.jboss.org/wildfly/plugins/maven/latest/examples/deployment-example.html

0 голосов
/ 12 июля 2019

Отказ от ответственности : Мой ответ включает процессы, которые я лично использую, поэтому это может быть не самое оптимальное или самое популярное решение. В любом случае, эти вещи, как правило, связаны с личными предпочтениями разработчика.

Ниже приведены некоторые рекомендации, которые могут ускорить процесс разработки.

  • Используйте подходящую IDE для разработки на Java

Использование популярной java IDE может ускорить разработку, поскольку она поддерживает интеграцию со средствами сборки (Maven), системами контроля версий, серверами приложений (Wildfly) и многими другими.

Популярными являются Eclipse, IntelliJ, Netbeans и многие другие.

  • Быстрое перераспределение

Как я уже говорил выше, подходящая IDE будет поддерживать интеграцию с серверами приложений, Wildfly для вашего случая. Используя плагин Wildfly IDE, вы можете ускорить процесс, поскольку вам не нужно ждать загрузки сервера приложений при каждом изменении кода. IDE запускается один раз на сервере, а затем применяет ваши изменения к работающему экземпляру.

Лично я также предпочитаю использовать отдельную установку Wildfly вместо ее интеграции с IDE. Для быстрого перераспределения я использую hotswap agent . Обратите внимание, что вам необходимо установить DCEVM, альтернативную JVM, которая, однако, не мешает вашей основной JVM.

В заключение, понятно, что вы делаете большой поворот от .NET к Java и в некоторых моментах можете чувствовать себя потерянными. Я бы посоветовал потратить некоторое время на настройку среды, и как только вы доработаете ее и почувствуете себя комфортно, разработка станет намного проще.

...