Identica

Сборка Identica

Как собрать плагин со всеми встроенными функциями и jar-файлы его провайдеров.

Запускайте из корня репозитория. Исходники компилируются и тестируются установленной на машине Java 21 — той, которой запускается Gradle:

./gradlew check pluginJars

check запускает модульные тесты через test и тесты на серверах баз данных и Redis через integrationTest. test не нужен Docker; integrationTest запускает PostgreSQL, MariaDB, MySQL и Redis в контейнерах и без Docker пропускает эти тесты. Тест, который запускает контейнер, помечен @Tag("integration") и выполняется только в integrationTest. Тест на базах данных TestDatabases помечен @Tag("database") — этот тег каждый тест схемы наследует от DatabaseSchemaContract: test запускает его на H2 и SQLite, а integrationTest — ещё и на серверах.

./gradlew test
./gradlew integrationTest

Живые тесты identica-testing не входят в check; см. Живые тесты.

pluginJars собирает загрузочные jar-файлы для Velocity и BungeeCord, универсальный jar-файл (BUNDLE) и jar-файлы официальных провайдеров в build/libs/.

Чтобы получить файлы, которые входят в сборку для разработки или релиз, под их итоговыми именами, выполните:

./gradlew assembleDistribution

Команда записывает в build/distribution/ файлы Identica-BUNDLE-<version>.jar, Identica-BUNGEECORD-<version>.jar, Identica-VELOCITY-<version>.jar, Identica-PLATFORMS-<version>.zip с jar-файлами для обоих прокси и два jar-файла провайдеров. Версия берётся из переменной окружения VERSION, по умолчанию — dev.

Каждая сборка плагина включает реализации всех встроенных функций и подсистему идентификации по нику. Администраторы настраивают использование функций глобально и для каждого провайдера; они не устанавливают jar-файлы функций и не выбирают, какие реализации компилировать.

Подмодули Gradle остаются раздельными ради границ API, разделения ответственности и тестирования. Их промежуточные jar-файлы — это зависимости сборки, а не дополнительные плагины Minecraft или функции, которые администратор может установить.

Как они собираются, описано на странице Функции, а остальной репозиторий — на странице Модули.