2017-01-23 4 views
0

Я создал вакансию в Jenkins, где я добавил действие «Post-build», используя "Разверните войну/ухо в контейнере" для развертывания WAR для запуска Tomcat. Работа работает нормально.Как откат развертывания развертывания WAR с более ранним успешным развертыванием tomcat в Jenkins при использовании Deploy war/ear в контейнере

Работа терпит неудачу, когда есть ошибка при развертывании на котом каким-либо причинам (например, неизвестно JNDI в context.xml).

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

+0

Возможно, вы захотите использовать решение «War Replacement», предложенное Tomcat. Если вы это сделаете, я полагаю, что сервер откажется от замены, если новая война не будет развернута правильно. – Zorglube

+0

@ Zorglube Не могли бы вы подробно рассказать о «War Replacement» или указать на некоторые ссылки. Насколько я знаю. Когда вы заменяете войну в папке webapps tomcat, tomcat развертывает. Но как он может откатиться, если файл WAR перезаписан? – harshlal028

+0

Я не уверен, но вы найдете что-то в этом https://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html – Zorglube

ответ

0

В tomcat вы можете просто развернуть военный файл с другим именем, например, с другой основной версией. Таким образом, внутри папки WebApps, у вас есть две военные файлы:

  • процесс-1.war
  • процесс-2.war

... и соответствующие каталоги (по крайней мере, если вы «ве установить unpackWARs = "истина" autoDeploy = "истина" в server.xml):

  • процесс-1
  • процесс-2

Обе версии можно использовать в этой точке. Стандартный URL-адрес приложения будет по умолчанию обработать_2.

Если вы удалите файл и каталог war_ process_2, или, что эквивалентно, нажмите «undeploy» в консоли администратора tomcat, старая версия будет по умолчанию снова, что означает, что вы вернулись к старой версии.

Смежные вопросы