4.3.2. Настройка доступа к репозиторию

Основной репозиторий

При создании нового проекта в CUBA Studio вам необходимо выбрать основной репозиторий, содержащий артефакты платформы. По умолчанию имеется два таких репозитория (может быть больше если установлен приватный репозиторий):

  • https://repo.cuba-platform.com/content/groups/work - репозиторий, расположенный на сервере Haulmont. Он требует передачи общих имени и пароля, которые указываются прямо в скрипте сборки (cuba / cuba123).

  • https://dl.bintray.com/cuba-platform/main - репозиторий, находящийся в JFrog Bintray. Он предоставляет анонимный доступ.

Оба репозитория имеют идентичное содержимое для последних версий платформы, но Bintray не содержит снэпшотов. Мы предполагаем, что Bintray является более надежным для доступа из любой точки мира.

В случае Bintray, скрипт сборки сконфигурирован также для использования репозиториев Maven Central, JCenter и Vaadin Add-ons по отдельности.

Доступ к премиум-дополнениям CUBA

Начиная с версии 7.0, дополнения BPM, Charts, Full-Text Search и Reports распространяются свободно. Они располагаются в основном репозитории, описанном выше, поэтому конфигурировать доступ к премиум-репозиторию нужно только для использования других премиум-дополнений, например WebDAV.

Если ваш проект использует премиум-дополнения, необходимо добавить еще один репозиторий в build.gradle:

  • Если основной репозиторий - repo.cuba-platform.com, то нужно добавить https://repo.cuba-platform.com/content/groups/premium

  • Если основной репозиторий - Bintray, то нужно добавить https://cuba-platform.bintray.com/premium

Пример добавления репозитория https://repo.cuba-platform.com/content/groups/premium:

buildscript {
    // ...
    repositories {
        // ...
        maven {
            url 'https://repo.cuba-platform.com/content/groups/premium'
            credentials {
                username(rootProject.hasProperty('premiumRepoUser') ?
                        rootProject['premiumRepoUser'] : System.getenv('CUBA_PREMIUM_USER'))
                password(rootProject.hasProperty('premiumRepoPass') ?
                        rootProject['premiumRepoPass'] : System.getenv('CUBA_PREMIUM_PASSWORD'))
            }
        }
    }

Пример добавления репозитория https://cuba-platform.bintray.com/premium:

buildscript {
    // ...
    repositories {
        // ...
        maven {
            url 'https://cuba-platform.bintray.com/premium'
            credentials {
                username(rootProject.hasProperty('bintrayPremiumRepoUser') ?
                        rootProject['bintrayPremiumRepoUser'] : System.getenv('CUBA_PREMIUM_USER'))
                password(rootProject.hasProperty('premiumRepoPass') ?
                        rootProject['premiumRepoPass'] : System.getenv('CUBA_PREMIUM_PASSWORD'))
            }
        }
    }

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

Передать имя и пароль в Gradle можно одним из перечисленных ниже способов.

  • Рекомендуемый способ - создать файл ~/.gradle/gradle.properties в домашнем каталоге пользователя операционной системы и указать параметры в нем:

    • Пример указания имени и пароля для https://repo.cuba-platform.com/content/groups/premium:

      ~/.gradle/gradle.properties
      premiumRepoUser=111111222222
      premiumRepoPass=abcdefabcdef
    • Пример указания имени и пароля для https://cuba-platform.bintray.com/premium:

      ~/.gradle/gradle.properties
      bintrayPremiumRepoUser=111111222222@cuba-platform
      premiumRepoPass=abcdefabcdef
  • Другой способ - это указать параметры в следующих переменных среды операционной системы:

    • CUBA_PREMIUM_USER - используется если не установлен premiumRepoUser.

    • CUBA_PREMIUM_PASSWORD - используется если не установлен premiumRepoPass.

При сборке проекта из командной строки, свойства можно также передавать в аргументах с префиксом -P, например:

gradlew assemble -PpremiumRepoUser=111111222222 -PpremiumRepoPass=abcdefabcdef
Дополнительные репозитории

Проект может использовать любые дополнительные репозитории, содержащие компоненты приложения. Они должны быть вручную указаны в build.gradle после основного репозитория, например:

repositories {
    // main repository containing CUBA artifacts
    maven {
        url 'https://repo.cuba-platform.com/content/groups/work'
        credentials {
            // ...
        }
    }
    // custom repository
    maven {
        url 'http://localhost:8081/repository/maven-snapshots'
    }
}