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 проекта.