Приватный репозиторий артефактов

В этом разделе рассказывается, как установить приватный Maven репозиторий, чтобы использовать его для кэширования артефактов платформы и их транзитивных зависимостей, вместо публичных репозиториев Jmix. Это рекомендуется делать в следующих случаях:

  • Вы не собираетесь продлевать подписку Enterprise на коммерческие дополнения, но хотели бы продолжить разработку вашего приложения в будущем, используя загруженные версии артефактов.

  • У вас нестабильное или слабое интернет-соединение. Несмотря на то, что Gradle кэширует артефакты на компьютере разработчика, время от времени все-таки необходимо подключаться к репозиторию артефактов, например, при первом запуске проекта или при переключении на новую версию фреймворка.

Для организации работы в сети, полностью изолированной от интернет, см. раздел Работа в изолированной сети.

Установка менеджера репозиториев

Вначале необходимо установить и запустить менеджер репозиториев на компьютере, находящемся внутри вашей сети.

Инструкции, приведенные ниже, подразумевают что компьютер работает под управлением операционной системы Linux.

  1. Загрузите менеджер репозиториев Nexus OSS со страницы https://help.sonatype.com/repomanager3/product-information/download/download-archives---repository-manager-3 и распакуйте его в каталог ~/work/nexus.

  2. Загрузите JDK 8 (например со страницы https://bell-sw.com/pages/downloads) и распакуйте его в каталог ~/work/jdk8.

  3. Откройте файл ~/.bashrc в текстовом редакторе и добавьте строку:

    export INSTALL4J_JAVA_HOME=/home/$USER/work/jdk8

    Переменная INSTALL4J_JAVA_HOME, указывающая на каталог установки JDK 8, необходима для запуска менеджера репозиториев Nexus.

  4. Откройте терминал, перейдите в каталог ~/work/nexus/nexus-<version>/bin и выполните:

    ./nexus run
  5. Откройте адрес http://localhost:8081 в веб-браузере.

  6. Нажмите Sign in в правом верхнем углу.

  7. Введите имя admin и пароль, находящийся в файле ~/work/nexus/sonatype-work/nexus3/admin.password.

  8. Смените пароль администратора.

  9. На шаге Configure Anonymous Access разрешите анонимный доступ к репозиторию. Это упростит конфигурацию проектов.

Создание прокси-репозиториев Jmix

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

  1. Перейдите в раздел администрирования ("шестеренка" вверху) и откройте меню Repositories.

  2. Создание прокси для публичного репозитория Jmix:

    • Нажмите кнопку Create repository.

    • Выберите тип maven2 (proxy).

    • Заполните поля:

      • Name: jmix-public-proxy

      • Version policy: Mixed

      • Remote storage: https://global.repo.jmix.io/repository/public

    • Нажмите кнопку Create repository внизу страницы.

  3. Создание прокси для премиум-репозитория Jmix:

    • Нажмите кнопку Create repository.

    • Выберите тип maven2 (proxy).

    • Заполните поля:

      • Name: jmix-premium-proxy

      • Version policy: Mixed

      • Remote storage: https://global.repo.jmix.io/repository/premium

      • В секции HTTP включите Authentication и введите первую часть лицензионного ключа подписки Enterprise до тире в поле Username, а вторую часть после тире в поле Password. Например, если ключ 111111222222-abcdefabcdef, то имя - 111111222222, пароль - abcdefabcdef.

    • Нажмите кнопку Create repository внизу страницы.

  4. Создание группы для доступа к обоим прокси-репозиториям через один URL:

    • Нажмите кнопку Create repository.

    • Выберите тип maven2 (group).

    • Заполните поля:

      • Name: jmix-proxy

      • Version policy: Mixed

      • В секции Group → Member repositories перенесите jmix-public-proxy и jmix-premium-proxy в список Members.

    • Нажмите кнопку Create repository внизу страницы.

Настройка проекта Jmix

В файле build.gradle своего проекта замените секцию repositories на следующий код:

repositories {
    mavenCentral()
    maven {
        allowInsecureProtocol true
        url 'http://localhost:8081/repository/jmix-proxy'
    }
}

Используйте вместо localhost реальное имя хоста, на котором запущен менеджер репозиториев.