Печально известный rm -rf
Команда - это то, чего мы предпочли бы избегать в производственной среде, даже если она написана сценарием. Итак, если у вас есть файл войны с именем mywebapp.war
и каталог, в котором он развернут webapps/
это называется webapps/mywebapp/
как вы можете принудительно выполнить повторное развертывание без использования rm -rf webapps/mywebapp/
Ошибка Tomcat носит временный характер и ее трудно воспроизвести, поэтому я пытаюсь глубже изучить опыт сообщества в поисках уловок, которые, как известно, работают.
Что о:
Установка даты доступа к войне или каталогу развертывания и / или его содержимому непосредственно перед запуском?
Отправка сигнала Unix процессу Tomcat?
Другой?
Мы как бы ограничены использованием сценариев, а не чего-то вроде виджета развертывания Tomcat, поэтому я ищу варианты с поддержкой сценариев, которые не приведут к всеобщему бунту. ;-)
Вы можете просто touch your_app.war
Tomcat сразу же выполнит повторное развертывание.
Если вас беспокоит защита временных меток для .war
файлов (что является хорошей идеей), вы можете сохранить символическую ссылку из каталога webapps на фактическое местоположение .war
файл и коснитесь символической ссылки.
В вашем server.xml для Tomcat вы можете настроить appBase на выполнение autoDeploy = "true" и unpackWARs = "true".
Затем, если вы развернете военный файл, он создаст каталог, а если вы переименуете военный файл, он удалит его. Это не рекомендуется для промышленного использования.
Кроме того, если вы не хотите выполнять команду rm -rf, просто переместите архив в родительскую папку, а затем заархивируйте его или сделайте что хотите.