5.1. Домашний каталог приложения
Домашний каталог - это каталог файловой системы, в котором могут размещаться Каталоги приложения. Он используется во всех вариантах развертывания кроме быстрого развертывания в Tomcat. В последнем случае каталоги приложения располагаются в специфичных каталогах Tomcat.
Домашний каталог формируется просто путем указания общего корня для каталогов приложения. Обычно это делается в файле /WEB-INF/local.app.properties
внутри WAR или UberJAR.
-
При сборке WAR-файла необходимо задать путь к домашнему каталогу приложения в задаче Gradle buildWar. Если вы заранее знаете где будет развернут WAR, то можно указать абсолютный путь или путь относительно рабочего каталога сервера. В противном случае можно указать placeholder для системного свойства Java и передать реальный путь во время запуска.
Пример указания домашнего каталога в runtime:
-
Конфигурация задачи сборки:
task buildWar(type: CubaWarBuilding) { appHome = '${app.home}' // ... }
-
Содержимое
/WEB-INF/local.app.properties
после сборки WAR:cuba.logDir = ${app.home}/logs cuba.confDir = ${app.home}/${cuba.webContextName}/conf cuba.tempDir = ${app.home}/${cuba.webContextName}/temp cuba.dataDir = ${app.home}/${cuba.webContextName}/work ...
-
Командная строка, задающая системное свойство
app.home
:java -Dapp.home=/opt/app_home ...
Способ указания системных свойств Java зависит от используемого сервера приложения. В случае Tomcat рекомендуется задавать их в файле
bin/setenv.sh
(илиbin/setenv.bat
). -
Результирующая структура каталогов:
/opt/app_home/ app/ conf/ temp/ work/ app-core/ conf/ temp/ work/ logs/
-
-
В случае UberJAR, домашним каталогом по умолчанию является рабочий каталог приложения, но он может быть также задан системным свойством
app.home
. Таким образом, для установки домашнего каталога в тот же путь, что и в примере для WAR выше, достаточно сформировать следующую командную строку запуска приложения:java -Dapp.home=/opt/app_home -jar app.jar