Как я могу заставить Tomcat автоматически развертывать файлы WAR из каталога, но при этом использовать исходный каталог appBase - PullRequest
3 голосов
/ 07 мая 2020

Мне нужно развернуть свое приложение во встроенном решении (работающем на raspberry pi zero). Таким образом, я действительно могу развертывать вещи только на localhost. Я не слишком хорошо знаком с виртуальными хостами, поэтому могу ошибаться в этом. Raspberry Pi. Это сделано для того, чтобы обновления можно было легко производить через репозиторий git, вместо того, чтобы иметь дело с менеджером. При этом мне также нравится, чтобы менеджер и другие инструменты администратора были активными и работали, которые содержатся в каталоге веб-приложений по умолчанию. Я не хочу копировать их в репозиторий git, поскольку они будут потеряны и хранятся в репозитории, в чем нет необходимости. Кроме того, я хочу, чтобы tomcat «взорвал» или извлек файлы WAR в исходном каталоге webapps, чтобы не добавлять эти файлы в репозиторий git.

В основном я хочу иметь возможность автоматически развертывать все военные файлы в определенном каталоге без фактической записи в этот каталог, а также автоматически развертывать военные файлы в "стандартном" каталоге веб-приложений.

Возможно ли это?

Я использую tomcat9

Ответы [ 2 ]

1 голос
/ 16 мая 2020

Решение A:

Tomcat 9 имеет только один атрибут appBase, которым по умолчанию является webapps. Чтобы изменить это, вам необходимо настроить 2 Общие атрибуты :

1.appBase: установите этот параметр в папку, в которой находится война, которую необходимо развернуть. 2.autoDeploy: убедитесь, что для него установлено значение true.

Невозможно иметь 2 каталога appbase. Таким образом, исходные веб-приложения не будут работать для автоматического развертывания.

Решение B:

Используйте сценарий для извлечения WAR из репозитория GIT, который также скопирует или переместит файл в стандартную папку webapps Tomcat9 . например,

git pull rm path/to/tomcat/webapps/warname.war  
mv warname.war
path/to/tomcat/webapps

Решение C:

Настройте свой GIT репозиторий или другой GIT репозиторий, чтобы просто включить папку webapps с желаемой войной. Если вы используете эту папку только для вывода войны из репозитория GIT, вам не нужно фиксировать приложения Tomcat по умолчанию. См. Следующие шаги. Начиная с установки vanilla Tomcat 9

  1. Переименуйте webapps в webappsOriginal

  2. Клонируйте репозиторий webapps, чтобы другой Создана папка webapps, содержащая только войну.

  3. Переместить все содержимое webappsOriginal в webapps.

  4. Удалить webappsOriginal

Теперь, если вы вытащите из репозитория, обновленная война будет загружена и развернута автоматически. Нет причин добавлять, фиксировать или удалять sh уже существующие файлы в вашем GIT.

1 голос
/ 16 мая 2020

Как насчет использования « inotify » для наблюдения за каталогом war в клонированном репозитории, и если он изменяет копирование войны в «веб-приложения» Tomcat, который автоматически развернет измененное приложение. Для этого вы можете установить inotify-tools. Проверьте здесь , чтобы узнать больше об этом.

...