5.3.1. Быстрое развертывание
Быстрое развертывание используется по умолчанию при разработке приложения, так как обеспечивает минимальное время сборки, установки и старта приложения. Данный вариант может также использоваться и для эксплуатации приложения.
Быстрое развертывание производится, когда вы запускаете приложение в Studio или выбираете в главном меню команду CUBA > Build Tasks > Deploy. При этом Studio запускает задачу deploy, объявленную для модулей core
и web
в файле build.gradle
. Перед первым выполнением deploy
выполняется также задача setupTomcat, которая устанавливает и инициализирует локальный сервер Tomcat. Данные задачи можно также выполнить и вне Studio.
Пожалуйста, убедитесь, что ваше окружение не содержит переменных |
В результате быстрого развертывания в каталоге deploy
проекта создается следующая структура (перечислены только важные каталоги и файлы):
deploy/
app_home/
app/
conf/
temp/
work/
app-core/
conf/
temp/
work/
logs/
app.log
local.app.properties
logback.xml
tomcat/
bin/
setenv.bat, setenv.sh
startup.bat, startup.sh
debug.bat, debug.sh
shutdown.bat, shutdown.sh
conf/
catalina.properties
server.xml
logging.properties
Catalina/
localhost/
lib/
hsqldb-2.4.1.jar
logs/
shared/
lib/
webapps/
app/
app-core/
-
deploy/app_home
- домашний каталог приложения.-
app/conf
,app-core/conf
- конфигурационные каталоги приложений веб-клиента и среднего слоя.
-
-
app/temp
,app-core/temp
- временные каталоги приложений веб-клиента и среднего слоя. -
app/work
,app-core/work
- рабочие каталоги приложений веб-клиента и среднего слоя. -
logs
- каталог журналов приложений. Основной лог-файл приложений -app.log
.-
local.app.properties
- файл, в котором можно задавать свойства приложения для данного варианта развертывания. -
logback.xml
- конфигурация логирования.
-
-
deploy/tomcat
- каталог локального Tomcat.-
bin
- каталог, содержащий скрипты запуска и остановки сервера Tomcat:-
setenv.bat
,setenv.sh
- скрипты установки переменных окружения. Эти скрипты следует использовать для установки параметров памяти JVM, настройки доступа по JMX, параметров подключения отладчика.Если вы столкнулись с медленной загрузкой Tomcat под Linux, установленной на виртуальной машине (VPS), попробуйте настроить JVM на использование источника неблокирующей энтропии в файле
setenv.sh
:CATALINA_OPTS="$CATALINA_OPTS -Djava.security.egd=file:/dev/./urandom"
-
startup.bat
,startup.sh
- скрипты запуска Tomcat. Сервер стартует в отдельном консольном окне в Windows и в фоне в Unix-like операционных системах.Для запуска сервера в текущем консольном окне вместо
startup.*
используйте команды> catalina.bat run
$ ./catalina.sh run
-
debug.bat
,debug.sh
- скрипты, аналогичныеstartup.*
, однако запускающие Tomcat с возможностью подключения отладчика. Именно эти скрипты запускаются при выполнении задачи start скрипта сборки. -
shutdown.bat
,shutdown.sh
- скрипты остановки Tomcat.
-
-
conf
- каталог, содержащий файлы конфигурации Tomcat и развернутых в нем приложений.-
catalina.properties
- свойства Tomcat. Для загрузки общих библиотек из каталогаshared/lib
(см. ниже) данный файл должен содержать строку:shared.loader=${catalina.home}/shared/lib/*.jar
-
server.xml
- описатель конфигурации Tomcat. В этом файле можно изменить порты сервера. -
logging.properties
- описатель конфигурации логирования самого сервера Tomcat. -
Catalina/localhost
- в этом каталоге можно разместить дескрипторы развертывания приложений context.xml. Дескрипторы, расположенные в данном каталоге имеют приоритет над дескрипторами в каталогахMETA-INF
самих приложений, что часто бывает удобно при эксплуатации системы. Например, в таком дескрипторе на уровне сервера можно указать параметры подключения к базе данных, отличные от указанных в самом приложении.Дескриптор развертывания на уровне сервера должен иметь имя приложения и расширение
.xml
. То есть для создания такого дескриптора, например, для приложенияapp-core
, необходимо скопировать содержимое файлаwebapps/app-core/META-INF/context.xml
в файлconf/Catalina/localhost/app-core.xml
.
-
-
lib
- каталог библиотек, загружаемых в common classloader сервера. Эти библиотеки доступны как самому серверу, так и всем развернутым в нем веб-приложениям. В частности, в данном каталоге должны располагаться JDBC-драйверы используемых баз данных (hsqldb-XYZ.jar
,postgresql-XYZ.jar
и т.д.) -
logs
- каталог логов сервера. -
shared/lib
- каталог библиотек, доступных всем развернутым приложениям. Классы этих библиотек загружаются в специальный shared classloader сервера. Использование shared classloader задается в файлеconf/catalina.properties
как описано выше.Задачи deploy файла сборки копируют в этот каталог все библиотеки, не перечисленные в параметре
jarNames
, то есть не специфичные для данного приложения. -
webapps
- каталог веб-приложений. Каждое приложение располагается в собственном подкаталоге в формате exploded WAR.Задачи deploy файла сборки создают подкаталоги приложений с именами, указанными в параметрах
appName
, и кроме прочего копируют в их подкаталогиWEB-INF/lib
библиотеки, перечисленные в параметреjarNames
.
-
Пути устанновки локального Tomcat и домашнего каталога приложения можно задать в свойствах cuba.tomcat.dir
и cuba.appHome
в файле build.gradle
, например:
cuba {
// ...
tomcat {
dir = "$project.rootDir/some_path/tomcat"
}
appHome = "$project.rootDir/some_path/app_home"
}