4.3.4.2. buildUberJar
buildUberJar
– задача типа CubaUberJarBuilding
, выполняющая сборку приложения и его зависимостей в JAR-файл вместе со встроенным HTTP-сервером Jetty. Можно создать либо один all-in-one JAR, либо несколько по числу блоков приложения, используемых в проекте, например, app-core.jar
для Middleware и app.jar
для Web Client.
Задача должна быть объявлена в корне скрипта build.gradle
. Собранные JAR-файлы находятся в подкаталоге build/distributions
проекта. Руководство по запуску собранных JAR-файлов смотрите в разделе Развертывание UberJAR.
Эту задачу можно настроить на странице Deployment > UberJAR Settings в Studio. |
Параметры задачи:
-
appProperties
- опциональный мэп свойств приложения. Эти свойства будут добавлены в файлыWEB-INF/local.app.properties
внутри создаваемых JAR.task buildUberJar(type: CubaUberJarBuilding) { appProperties = ['cuba.automaticDatabaseUpdate' : true] // ... }
-
singleJar
- если установлен вtrue
, то создается единый JAR, включающий все модули проекта (core, web, portal). По умолчаниюfalse
.task buildUberJar(type: CubaUberJarBuilding) { singleJar = true // ... }
-
webPort
- порт встроенного HTTP-сервера для единого (еслиsingleJar=true
) или web JAR. Если не установлен, имеет значение8080
. Может быть задан во время работы приложения с помощью аргумента командной строки-port
. -
corePort
- порт встроенного HTTP-сервера для core JAR. Если не установлен, имеет значение8079
. Может быть задан во время работы приложения с помощью аргумента командной строки-port
. -
portalPort
- порт встроенного HTTP-сервера для portal JAR. Если не установлен, имеет значение8081
. Может быть задан во время работы приложения с помощью аргумента командной строки-port
. -
appName
- имя приложения, по умолчаниюapp
. Его можно изменить для всего проекта, заполнив поле Module prefix в экране Project Properties в Studio, либо установить его только для задачиbuildUberJar
, использовав этот параметр, например:task buildUberJar(type: CubaUberJarBuilding) { appName = 'sales' // ... }
После изменения имени приложения на
sales
задача создаст файлыsales-core.jar
иsales.jar
, и веб-клиент будет доступен по адресуhttp://localhost:8080/sales
. Вы также можете изменить веб-контекст (последнюю часть URL после /) во время работы приложения, не изменяя заранее имени приложения, с помощью аргумента командной строки-contextName
, или просто переименовав сам JAR файл. -
logbackConfigurationFile
- задает относительный путь к файлу, в котором содержится конфигурация логирования.Например:
logbackConfigurationFile = "/modules/global/src/logback.xml"
-
useDefaultLogbackConfiguration
- пока установлено значениеtrue
(по умолчанию), задача будет копировать конфигурацию из её собственного стандартного файлаlogback.xml
. -
coreJettyEnvPath
- содержит относительный (от корня проекта) путь к файлу, в котором содержатся определения ресурсов JNDI для HTTP-сервера Jetty.task buildUberJar(type: CubaUberJarBuilding) { coreJettyEnvPath = 'modules/core/web/META-INF/jetty-env.xml' // ... }
-
webJettyConfPath
- относительный путь к файлу, который будет использован в качестве файла конфигурации сервера Jetty для единого JAR (еслиsingleJar=true
) или web JAR (еслиsingleJar=false
). См. https://www.eclipse.org/jetty/documentation/9.4.x/jetty-xml-config.html. -
coreJettyConfPath
- относительный путь к файлу, который будет использован в качестве файла конфигурации сервера Jetty для core JAR (еслиsingleJar=false
), -
portalJettyConfPath
- относительный путь к файлу, который будет использован в качестве файла конфигурации сервера Jetty для portal JAR (еслиsingleJar=false
). -
coreWebXmlPath
- относительный путь к файлу, который будет использован в качествеweb.xml
для веб-приложения модуля core. -
webWebXmlPath
- относительный путь к файлу, который будет использован в качествеweb.xml
для веб-приложения модуля web. -
portalWebXmlPath
- относительный путь к файлу, который будет использован в качествеweb.xml
для веб-приложения модуля portal. -
excludeResources
- шаблон файлов ресурсов, которые не должны быть включены в JAR. -
mergeResources
- шаблон файлов ресурсов, которые необходимо объединить в JAR. -
webContentExclude
- шаблон файлов ресурсов, которые не должны быть включены в web JAR. -
coreProject
- проект Gradle, представляющий модуль core (Middleware). Если не установлено, используется стандартный модуль core проекта. -
webProject
- проект Gradle, представляющий модуль web (Web Client). Если не установлено, используется стандартный модуль web проекта. -
portalProject
- проект Gradle, представляющий модуль portal (Web Portal). Если не установлено, используется стандартный модуль portal проекта. -
frontProject
- проект Gradle, представляющий модуль Фронтенд интерфейс. Если не установлено, используется стандартный модуль front проекта.