5.3.1. build.gradle

В данном разделе описывается структура и основные элементы скрипта build.gradle.

В секции buildscript задается следующее:

  • Версия базовых проектов, на которой основан данный проект.

  • Набор репозиториев, из которых будут загружаться зависимости проекта. Когда вы создаете новый проект в CUBA Studio, он содержит ссылку на репозиторий, который указан в окне сервера Studio. По умолчанию это публичный репозиторий:

    https://repo.cuba-platform.com/content/groups/work

    Если ваш проект использует Премиум Дополнения, Studio добавляет еще один репозиторий:

    https://repo.cuba-platform.com/content/groups/premium

    Оба репозитория требуют указания имени пользователя и пароля. В то время как публичный репозиторий использует общеизвестные параметры, указанные прямо в скрипте сборки (cuba / cuba123), параметры подключения к репозиторию дополнений предоставляются по подписке на разработчика. Первая часть лицензионного ключа до тире представляет собой имя пользователя, вторая часть после тире - пароль. Например, если ваш ключ 111111222222-abcdefabcdef, то имя - 111111222222, пароль - abcdefabcdef

    Studio передает Gradle параметры подключения когда запускает скрипт сборки. При сборке проекта вне Studio передайте premiumRepoUser и premiumRepoPass в командной строке в аргументах -P:

    gradle assemble -PpremiumRepoUser=111111222222 -PpremiumRepoPass=abcdefabcdef

После секции buildscript обявляются несколько переменных, используемых далее в скрипте.

Логика сборки, специфичная для CUBA, сосредоточена в Gradle плагине cuba. Он подключается в корне скрипта и в секциях configure каждого модуля:

apply(plugin: 'cuba')

Параметры плагина cuba задаются в секции cuba:

cuba {
    artifact {
        group = 'com.company.sales'
        version = '0.1'
        isSnapshot = true
    }
    tomcat {
        dir = "$project.rootDir/build/tomcat"
    }
    ide {
        copyright = '...'
        classComment = '...'
        vcs = 'Git'
    }
}

Рассмотрим доступные параметры:

  • artifact - задает группу и версию собираемых артефактов проекта. Имена артефактов формируются на основе имен модулей, заданных в settings.gradle.

    • group - группа артефактов.

    • version - версия артефактов.

    • isSnapshot - если установлено в true, то в именах артефактов будет присутствовать суффикс SNAPSHOT.

  • tomcat - задает параметры сервера Tomcat, который используется для быстрого развертывания.

    • dir - расположение каталога установки Tomcat.

    • port - порт сервера; по умолчанию 8080.

    • debugPort - порт для подключения Java отладчика; по умолчанию 8787.

    • shutdownPort - порт для передачи команды SHUTDOWN; по умолчанию 8005.

    • ajpPort - порт AJP connector; по умолчанию 8009.

  • ide - задает некоторые параметры для Studio и IDE.

    • vcs - тип используемой в проекте VCS. В данный момент поддерживаются только Git и svn.

    • copyright - текст Copyright Notice, вставляемый в начало файлов исходных текстов.

    • classComment - текст комментария, который будет расположен над объявлением класса в исходных текстах Java.

  • uploadRepository - задает параметры репозитория, в который будут выгружатся собранные артефакты проекта при выполнении задачи uploadArchives.

    • url - URL репозитория. По умолчанию используется репозиторий Haulmont.

    • user - имя пользователя репозитория.

    • password - пароль пользователя репозитория.

      Параметры репозитория выгрузки артефактов можно передать в командной строке с помощью следующих аргументов:

      gradlew uploadArchives -PuploadUrl=http://myrepo.com/content/repositories/snapshots -PuploadUser=me -PuploadPassword=mypassword