
MavenLoaderAPI
MavenLoaderAPI - это плагин для Minecraft серверов на Spigot, Paper, BungeeCord и Velocity, который уменьшает размер плагинов за счет автоматической загрузки внешних зависимостей с использованием технологии Maven.
MavenLoaderAPI
Если вы когда-нибудь сталкивались с тем, что плагины весят десятки мегабайт из-за встроенных библиотек - MavenLoaderAPI решает эту проблему. Вместо того чтобы таскать одни и те же зависимости в каждом плагине, этот загрузчик просто подтягивает их с удаленного репозитория при запуске. Итог - экономия места на диске и более легкие обновления.
Зачем это нужно
В ванильном Майнкрафте нет разделения на клиент-серверные библиотеки: плагины часто упаковывают всё подряд (JSON-парсеры, HTTP-клиенты, ASM и так далее). MavenLoaderAPI для Майнкрафт позволяет вынести общие зависимости наружу. Плагин сам по себе становится микроскопическим (килобайты вместо мегабайт), а нужные .jar файлы качаются один раз для всех. Это особенно удобно на серверах с десятками плагинов.
Требования
- Java 17+ - без вариантов, старые версии не поддерживаются.
- Velocity 3.3.0+ (необязательно) - если используешь современный прокси.
- BungeeCord 1.18+ (необязательно) - для старых сборок.
- Spigot/Paper/Folia 1.18.2+ (необязательно) - для стандартных серверов.
Совместимость: плагин работает на Bukkit, BungeeCord и Velocity. Если ваш сервер крутится на Paper или Purpur - тоже норм.
Установка и запуск
Чтобы всё заработало, добавьте в Java-аргументы при запуске сервера:
--add-opens=java.base/java.net=ALL-UNNAMED
Потом просто скачайте MavenLoader и положите в папку plugins. Перезапускать сервер не обязательно - плагин подхватится автоматически, если у вас плагин-менеджер. Важно: MavenLoaderAPI не является обычным плагином, подключаемые к нему зависимости могут быть потенциально опасны - убедитесь, что вы доверяете источникам.
Как это работает (для разработчиков)
- Реализован механизм белых списков репозиториев (c версии 1.4-SNAPSHOT).
- Поддерживаются форматы
maven.yml(начиная с 1.2-SNAPSHOT). - С версии 1.5-SNAPSHOT появилась поддержка Bukkit.
- В планах (1.6-SNAPSHOT) - поддержка BungeeCord, PlugmanX и новые параметры
platform,reference-load.
Документация для разработчиков и примеры использования выложены в репозитории (ссылки на гитхаб не воспроизвожу - всё есть в исходном описании).
Настройки
Файл конфигурации config.yml выглядит так:
enable_whitelist: true # Включить белый список репозиториев, по умолчанию true
whitelist:
- https://repo.maven.apache.org/maven2
- https://oss.sonatype.org/content/groups/public/
- https://repository.jboss.org/nexus/content/groups/public
- https://jitpack.io
- https://hub.spigotmc.org/nexus/content/repositories/snapshots/
- https://repo.papermc.io/repository/maven-public/
- https://repo.repsy.io/mvn/rdb/default
updater:
check: true
source: github # Канал обновлений: github, spigot, spiget
По умолчанию белый список включает проверенные репозитории (Maven Central, Jitpack, Nexus SpigotMC и Paper). Если вы используете сторонние репозитории - добавьте их в список вручную. Обновления проверяются с GitHub - можно отключить, если не нужно.
Статистика
По данным bStats (сборщик статистики), MavenLoaderAPI стабильно используется на:
- Velocity: ~1.5 тыс. серверов
- Spigot: ~3 тыс. серверов
- BungeeCord: ~500 серверов
Плагин живёт с 2022 года и постоянно обновляется. Разработчик (rdb) активно поддерживает совместимость с новыми версиями Minecraft.
Нюансы
- Если какой-то плагин, использующий MavenLoaderAPI, не загружается - проверьте белый список репозиториев в конфиге.
- На слабых VDS загрузка зависимостей может занять 5-10 секунд при первом запуске (потом кэшируется).
- Если у вас стоит BungeeCord - дождитесь версии 1.6-SNAPSHOT, текущая стабильная (1.5) поддерживает только Bukkit-сервера.
- Для тех, кто хочет минимальный вес сервера - это must-have: с MavenLoaderAPI плагины весят в 2-3 раза меньше.
Итог
MavenLoaderAPI - технический, но очень полезный инструмент для админов, у которых сервер завален плагинами. Уменьшает вес сборки, упрощает обновления и делает сервер чище. Если вы используете сложные связки плагинов (типа LuckPerms, PlaceholderAPI, MythicMobs) - скорее всего, MavenLoaderAPI будет работать с ними из коробки.
