Tomcat всегда извлекает содержимое файла войны в папку с тем же именем (когда он настроен для развертывания войн - по умолчанию и т. Д.).
Вы можете извлечь его в любое имя папки по вашему выбору. Поэтому, если вы распакуете содержимое foo.war
в папку с именем bar/
вручную, а не просто поместите войну в папку веб-приложений, она все равно загрузит веб-приложение.
Тем не менее, это совершенно не нужно, поскольку вы можете указать шаблон URL приложения, не перепутывая с именем файла folder / war, переопределив корневой элемент контекста для вашего приложения:
Это часто устанавливается в Tomcat server.xml
- но такая практика довольно обескуражена. Вместо этого я бы предложил вам использовать context.xml
в папке META-INF вашего веб-приложения / файла war:
<Context path="/bar" .../>
Когда приложение развернуто, context.xml
следует скопировать в /conf/Catalina/localhost
, но переименовать в foo.xml
Обратите внимание, что корни conext должны быть уникальными, и при использовании операций autoDeploy
или deployOnStartup
(источник http://tomcat.apache.org/tomcat-7.0-doc/config/context.html).
есть некоторые дополнительные соображения
Другие опции включают в себя:
- Очистите папку веб-приложений при каждом развертывании и добавьте новую
foo-1.1.0
войну.
- Включить номер версии в плоский файл.
foo/version1
- Или просто включите версию в файл config / XML.
Вы также можете использовать Ant (или аналогичный инструмент) для автоматизации ваших развертываний (и выполнить любое из вышеперечисленного).