Работа в изолированной сети
В этом разделе рассказывается, как установить локальный репозиторий, чтобы использовать его для хранения всех необходимых артефактов - версий Jmix, аддонов и дополнительных библиотек - вместо публичного репозитория Jmix. Это рекомендуется делать в следующих случаях:
-
У вас нестабильное или слабое интернет-соединение. Несмотря на то что Gradle кэширует артефакты на компьютере разработчика, время от времени все-таки необходимо подключаться к репозиторию артефактов, например, при первом запуске проекта или при переключении на новую версию фреймворка.
-
У вас ограничен доступ к интернету из-за политики безопасности организации.
Установка локального Nexus
Рассмотрим пример установки менеджера репозиториев Sonatype Nexus OSS.
-
Скачайте на компьютер Sonatype Nexus OSS версии 3.x по ссылке https://help.sonatype.com/repomanager3/product-information/download/download-archives---repository-manager-3.
-
Распакуйте архив.
-
Перейдите в подкаталог
bin
и запустите менеджер репозиториев командойrun
:On Windowsnexus.exe /run
On Linux./nexus run
-
Откройте в браузере адрес
http://localhost:8081
. -
После первого запуска смените пароль по умолчанию:
Создание репозитория Jmix
Далее сконфигурируем репозиторий, который будет использоваться для установки артефактов.
-
Перейдите в меню администратора и далее нажмите на кнопку Repositories.
-
Нажмите на кнопку Create repository.
-
Выберите тип
maven2 hosted
. -
Заполните поле Name и нажмите на кнопку Create repository:
Установка и настройка CUBA SDK
CUBA SDK - это утилита командной строки, позволяющая вычислить, скачать и загрузить в локальный репозиторий все артефакты, необходимые для разработки Jmix-приложений.
-
Скачайте последний доступный релиз CUBA SDK для вашей операционной системы по ссылке https://github.com/cuba-platform/cuba-sdk/releases.
-
Произведите установку CUBA SDK согласно инструкции, доступной по ссылке https://github.com/cuba-platform/cuba-sdk#installation.
-
После первичной установки добавьте сконфигурированный на предыдущем шаге репозиторий в качестве
target
в CUBA SDK с помощью команды:cuba-sdk repository add target
-
Проследуйте дальнейшим инструкциям. Пример такого диалога ниже:
Загрузка архива артефактов
CUBA SDK может вычислить необходимые версии всех зависимостей, необходимых для Jmix и скачать их локально на ваш компьютер. Для этого используются команды resolve jmix
, push jmix
или install jmix
(см. руководство). Но обычно нет необходимости вызывать эти команды самостоятельно. На сайте Jmix вы можете найти заранее подготовленные архивы с артефактами для всех версий Jmix.
Скачайте ZIP-архив c необходимой версией Jmix с сайта https://www.jmix.ru/sdk-resources/. Архив содержит все бесплатные Jmix-аддоны и прочие зависимости, необходимые для работы с проектом Jmix.
В примере ниже будем использовать версию Jmix 1.2.2.
Импорт артефактов
После того, как target
репозиторий добавлен, импорт может быть осуществлён командой
cuba-sdk import <path-to-zip-archive>
Например:
cuba-sdk import jmix-dependencies-1.2.2.zip
В результате выполнения данной операции target репозиторий jmix
локального Nexus будет заполнен необходимыми артефактами.
Загрузка премиум аддонов
Aрхив на сайте не содержит премиум аддонов. Для их установки в Nexus репозиторий необходимо выполнить ряд дополнительных операций.
-
Введите лицензионный ключ через команду в оболочке CUBA SDK:
cuba-sdk set-license
-
Далее установите дополнение в локальный репозиторий. Рассмотрим на примере установки дополнения Maps:
cuba-sdk install jmix-addon
Команда install jmix-addon
вычисляет все необходимые зависимости для конкретного аддона, скачивает их в рабочую папку утилиты CUBA SDK и затем загружает их в target Nexus репозиторий (в нашем примере это репозиторий с именем jmix
).
Экспорт артефактов
Если вы хотите создать zip-архив, который, в отличие от архива с сайта Jmix, содержит и бесплатные и премиум аддоны, то после того, как вы импортировали все зависимости в свой локальный репозиторий, вы можете воспользоваться функциональностью экспорта. Все имеющиеся артефакты упаковываются в архив, который может быть перенесен на машину без доступа в интернет и установлен в локальный Nexus на изолированной машине.
cuba-sdk export jmix-addon

Результатом выполнения данной операции должен стать ZIP-архив со всеми зависимостями.
Подробнее о экспорте можно посмотреть в инструкции, доступной по ссылке.
Вместо создания собственного zip-архива вы также можете перенести сконфигурированный Nexus на компьютер без доступа в интернет.
Установка Gradle
-
Скачайте Gradle версии 7.x с сайта https://gradle.org/releases/.
-
Распакуйте в рабочий каталог, например,
C:\tools
. -
Добавьте подкаталог
bin
установленного Gradle в переменнуюPATH
операционной системы.
Создание проекта Jmix
-
Запустите IntelliJ IDEA с установленным плагином Jmix.
-
Создайте новый Jmix проект с кастомной конфигурацией репозиториев, в которой укажите путь и параметры подключения к локальному репозиторию:
Список доступных версий Jmix определяется версиями имеющихся в репозитории артефактов
io.jmix.templates.studio:jmix-studio-templates
. -
После открытия проекта отредактируйте
build.gradle
следующим образом (замените пароль администратора на тот который вы задали в Nexus):buildscript{ repositories { maven { url 'http://localhost:8081/repository/jmix/' // local repository URL allowInsecureProtocol = true // required if HTTP used instead of HTTPS credentials { username(rootProject.hasProperty('repoUser') ? rootProject['repoUser'] : 'admin') password(rootProject.hasProperty('repoPass') ? rootProject['repoPass'] : 'adminpass') } } } dependencies { classpath 'io.jmix.gradle:jmix-gradle-plugin:1.2.0' // 'jmix' plugin version } } apply plugin: 'io.jmix' apply plugin: 'java' apply plugin: 'org.springframework.boot' jmix { bomVersion = '1.2.2' } group = 'com.company' version = '0.0.1-SNAPSHOT' repositories { maven { url 'http://localhost:8081/repository/jmix/' // local repository URL allowInsecureProtocol = true // required if HTTP used instead of HTTPS credentials { username(rootProject.hasProperty('repoUser') ? rootProject['repoUser'] : 'admin') password(rootProject.hasProperty('repoPass') ? rootProject['repoPass'] : 'adminpass') } } } dependencies { // ... }
-
Укажите корректный путь к Gradle в Gradle Settings:
-
В панели Gradle нажмите Reload All Gradle Projects, чтобы обновить конфигурацию проекта.
В случае возникновения ошибок нужно зайти в терминал и выполнить:
gradle --no-daemon clean assemble