Лучший способ развернуть большой *.war на коте

Во время разработки я часто должен развертывать большой военный файл (~45 МБ) на удаленном тестовом сервере, обычно я копирую файл с scp к серверу.

Папка WEB-INF/lib составляет самую большую часть военного файла, который включает все необходимые библиотеки (пружина, апач-cxf, будьте в спящем режиме...).

Теперь я ищу быстрое и легкое способ повторно развернуть только мои измененные файлы.

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

11
задан Alex 6 July 2010 в 09:33
поделиться

2 ответа

Когда вы развертываете .war , первое, что делает Tomcat, - это распаковывает этот файл в свой каталог webapps в подкаталог с тем же именем, что и ваш . война .

Во время разработки у вас, очевидно, есть доступ к вашим файлам .class , файлам .jar , файлам конфигурации и всему остальному, что в конечном итоге попадает в ваш .war . Вы можете легко создать небольшой набор файлов, на который повлияют ваши изменения. Выясните это, а затем используйте сценарий или задачу ant или что-то еще, чтобы скопировать только эту небольшую горстку файлов прямо в каталог webapps / yourapp на сервере.

Чтобы изменения вступили в силу, вам нужно перезапустить приложение. Если Tomcat находится в режиме разработки, один из простых способов принудительной перезагрузки (и, конечно, перезапуска) - это обновить WEB-INF / web.xml . Так что пусть процесс развертывания коснется этого файла или иным образом обновит его так, чтобы ему была присвоена новая временная метка, scp , которая тоже закончилась (желательно в качестве последнего из обновляемых файлов) и у вас должна быть быстрая и легкая перезагрузка.

6
ответ дан 3 December 2019 в 10:24
поделиться

Я не думаю, что есть более быстрый способ развернуть только изменения в WAR-файле.

Если вы развертываете в покомпонентном режиме, вы можете увидеть, какие временные метки файлов изменились, и действовать соответственно, но для этого вам придется написать код.

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

Просто любопытно:

  1. Сколько времени это занимает сейчас?
  2. Используете ли вы непрерывную интеграцию для сборки и развертывания?
0
ответ дан 3 December 2019 в 10:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: