Развертывание только разностей в Webapp с Maven на удаленном сервере
Я использую груз: развертывание с помощью maven для развертывания приложений на серверах. Это хорошо работает, но я недавно попробовал использовать CloudBees. У них есть аналогичный плагин для их инфраструктуры. Тем не менее, он развертывает только различия между старой WAR и новой WAR, поэтому она значительно быстрее. Когда груз: развертывание занимает от 4 до 6 минут, метод CloudBees занимает менее минуты.
Есть ли какие-либо плагины для Maven, которые позволят мне развернуть только мои изменения на моем собственном сервере приложений? Сейчас я использую Tomcat, но рассмотрю возможность переключения серверов приложений, если будет хорошее решение для чего-то еще.
Ответы
Ответ 1
Вам нужна поддержка на стороне сервера для приема дельта, где мы (облачные) получаем вызов нашего секретного соуса.
Вам понадобится служба развертывания на целевом сервере, которая понимает, какой формат дельта загружается.
Это не сложно сделать в некотором роде... Война построила контрольные суммы, поэтому, если запись в войне имеет тот же путь, последний-модифицированный, Crc и размер, то это хороший кандидат на исключение из дельта, поэтому вы берете более безопасный хеш или два (например, sha-256 и md5, чтобы сопоставлять разные функции), и если эти хэши одинаковы! Исключить из дельты.
Приятное веб-приложение tomcat-deployer может поддерживать такое развертывание, но вы хотите заблокировать его для производства, но, в любом случае, почему вы принимаете себя, когда можете использовать GSETDIFY
Ответ 2
Если вас интересует только Tomcat, вы можете использовать Tomcat Plugin для Maven
Не сложно настроить, просто проверьте URL-адрес приложения менеджера Tomcat, потому что он изменен с Tomcat 6 (http://tomcat_server: 8080/manager/) на Tomcat 7 (http://tomcat_server: 8080/manager/html).
Плагин запускается после фазы сборки пакета, поэтому он непосредственно развертывает сгенерированную войну на удаленный сервер, на котором работает Tomcat.
Ответ 3
Я нахожу, что у меня из памяти возникают ошибки на сервере, после нескольких грузовых развертываний.
Вы можете использовать расширение ssh maven wagon. Он может загружаться на основе расширенной войны.
Вот пример использования:
http://mojo.codehaus.org/wagon-maven-plugin/usage.html
Но не уверен, как заставить его загружать только измененные файлы. С помощью ant существовал компонент кэша файлов, который будет кэшировать контрольную сумму файлов и только повторно загружать, если контрольная сумма была изменена.
Даже после того, как вы загрузили файлы, может потребоваться перезагрузка, так как tomcat не очень хорош при горячих развертываниях.