5.3.3.1. buildUberJar
buildUberJar – задача типа CubaUberJarBuilding, выполняющая сборку приложения и его зависимостей в JAR-файл вместе со встроенным HTTP-сервером Jetty. Для каждого блока приложения создаётся отдельный JAR-файл, например, app-core.jar для Middleware и app.jar для Web Client.
Задача должна быть объявлена в корне скрипта build.gradle. Собранные JAR-файлы находятся в подкаталоге build/distributions проекта. Руководство по запуску собранных JAR-файлов смотрите в разделе Развертывание UberJAR.
|
Tip
|
Эту задачу можно настроить на вкладке Deployment settings > Uber JAR в Studio. |
Параметры задачи:
-
coreJettyEnvPath- обязательный параметр, содержащий относительный путь к файлу, в котором содержатся определения ресурсов JNDI для HTTP-сервера Jetty. Как минимум, этот файл должен содержать определение источника данных JDBC для основной базы данных. Studio может сгенерировать этот файл, используя установленные параметры подключения к базе данных. Может быть задан во время работы приложения с помощью аргумента командной строки-jettyEnvPath. -
appProperties- опциональный мэп свойств приложения. Эти свойства будут добавлены в файлы/WEB-INF/local.app.propertiesвнутри создаваемых JAR. -
corePort- порт для core JAR на встроенном HTTP-сервере. Если не установлен, имеет значение8079. Может быть задан во время работы приложения с помощью аргумента командной строки-port. -
webPort- порт для web JAR на встроенном HTTP-сервере. Если не установлен, имеет значение8080. Может быть задан во время работы приложения с помощью аргумента командной строки-port. -
portalPort- порт для portal JAR на встроенном HTTP-сервере. Если не установлен, имеет значение8081. Может быть задан во время работы приложения с помощью аргумента командной строки-port. -
appName- имя приложения, по умолчаниюapp. Его можно изменить для всего проекта, заполнив поле Module prefix на вкладке Project Properties > Advanced в Studio, либо установить его только для задачиbuildUberJar, использовав этот параметр, например:task buildUberJar(type: CubaUberJarBuilding) { coreJettyEnvPath = 'modules/core/web/META-INF/jetty-env.xml' appProperties = ['cuba.automaticDatabaseUpdate' : true] appName = 'sales' }После изменения имени приложения на
salesзадача создаст файлыsales-core.jarиsales.jar, и веб-клиент будет доступен по адресуhttp://localhost:8080/sales. Вы также можете изменить веб-контекст (последнюю часть URL после /) во время работы приложения, не изменяя имени приложения, с помощью аргумента командной строки-contextName.WarningСледует иметь в виду, что текущая реализация Polymer UI требует ручного указания тега
<base>для текущего веб-контекста, доступного во время работы приложения. Таким образом, после изменения контекста с помощью Module prefix, параметра задачиappNameили аргумента командной строки-frontContextNamePolymer UI может стать недоступным. -
coreProject- проект Gradle, представляющий модуль core (Middleware). Если не установлено, используется стандартный модуль core проекта. -
webProject- проект Gradle, представляющий модуль web (Web Client). Если не установлено, используется стандартный модуль web проекта. -
portalProject- проект Gradle, представляющий модуль portal (Web Portal). Если не установлено, используется стандартный модуль portal проекта. -
polymerProject- проект Gradle, представляющий модуль Polymer UI. Если не установлено, используется стандартный модуль polymer-client проекта. -
coreWebXmlPath- относительный путь к файлу, который будет использован в качествеweb.xmlдля core JAR. -
webWebXmlPath- относительный путь к файлу, который будет использован в качествеweb.xmlдля web JAR. -
portalWebXmlPath- относительный путь к файлу, который будет использован в качествеweb.xmlдля portal JAR. -
excludeResources- шаблон файлов ресурсов, которые не должны быть включены в JAR. -
mergeResources- шаблон файлов ресурсов, которые необходимо объединить в JAR. -
webContentExclude- шаблон файлов ресурсов, которые не должны быть включены в web JAR.