5.3.1. Быстрое развертывание в Tomcat
Быстрое развертывание используется по умолчанию при разработке приложения, так как обеспечивает минимальное время сборки, установки и старта приложения. Данный вариант может также использоваться и для эксплуатации приложения.
Быстрое развертывание производится с помощью задачи deploy, объявленной для модулей core и web в файле build.gradle
. Перед первым выполнением deploy
необходимо установить и проинициализировать локальный сервер Tomcat с помощью задачи setupTomcat.
Пожалуйста, убедитесь, что ваше окружение не содержит переменных |
В результате быстрого развертывания в каталоге, задаваемом свойством ext.tomcatDir
скрипта build.gradle
создается следующая структура (перечислены только важные каталоги и файлы, описанные ниже):
bin/
setenv.bat, setenv.sh
startup.bat, startup.sh
debug.bat, debug.sh
shutdown.bat, shutdown.sh
conf/
catalina.properties
server.xml
logback.xml
logging.properties
Catalina/
localhost/
app/
app-core/
lib/
hsqldb-2.2.9.jar
logs/
app.log
shared/
lib/
temp/
app/
app-core/
webapps/
app/
app-core/
work/
app/
app-core/
-
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 и в фоне в *nix.Для запуска сервера в текущем консольном окне вместо
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. В этом файле можно изменить порты сервера. -
logback.xml
- описатель конфигурации логирования приложений. -
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
. -
app
- конфигурационный каталог приложения веб-клиентаapp
. -
app-core
- конфигурационный каталог приложения среднего слояapp-core
.
-
-
lib
- каталог библиотек, загружаемых в common classloader сервера. Эти библиотеки доступны как самому серверу, так и всем развернутым в нем веб-приложениям. В частности, в данном каталоге должны располагаться JDBC-драйверы используемых баз данных (hsqldb-XYZ.jar
,postgresql-XYZ.jar
и т.д.) -
logs
- каталог логов приложений и сервера. Основной лог-файл приложений -app.log
. -
shared/lib
- каталог библиотек, доступных всем развернутым приложениям. Классы этих библиотек загружаются в специальный shared classloader сервера. Использование shared classloader задается в файлеconf/catalina.properties
как описано выше.Задачи deploy файла сборки копируют в этот каталог все библиотеки, не перечисленные в параметре
jarNames
, то есть не специфичные для данного приложения. -
temp/app
,temp/app-core
- временные каталоги приложений веб-клиента и среднего слоя. -
webapps
- каталог веб-приложений. Каждое приложение располагается в собственном подкаталоге в формате exploded WAR.Задачи deploy файла сборки создают подкаталоги приложений с именами, указанными в параметрах
appName
, и кроме прочего копируют в их подкаталогиWEB-INF/lib
библиотеки, перечисленные в параметреjarNames
. -
work/app
,work/app-core
- рабочие каталоги приложений веб-клиента и среднего слоя.