- Баллы
- 123
- Имя в Minecraft
- Reality_SC
Объяснение по названию.
Данный maven-плагин создавался с целью упростить получение серверного ядра для отладки плагинов и разрабатывался с упором на скачивание .jar / .zip с интернет-ресурса Yive's Mirror. К сожалению, данный сайт приказал долго жить, и сейчас плагин ориентируется на запуск сервера из локально расположенного .jar / .zip серверного ядра. Однако, поскольку и сам проект уже находится в стадии только фикса багов, проводить его rename-инг считаю избыточным.
Краткое описание.
Данный плагин для системы сборки Maven осуществляет следующие действия:
Инструкция в картинках в следующем посте.
Откройте ваш pom.xml.
Добавьте следующий репозиторий, чтобы позволить Maven найти на просторах интернета нужный плагин:
В настройки сборки проекта добавьте следующий плагин:
Здесь присутствуют следующие настройки:
clean — удалит каталог /target, verify — создаст его и соберёт .jar вашего плагина, yivemirror:run — подготовит каталог для запуска указанного spigot-сервера, скопирует туда .jar плагина и запустит указанный сервер.
Известные ограничения и способы их обхода.
Часть серверных файлов создаётся в корневой папке проекта (eula.txt, help.ylm, ops.json и др.)
Для того, чтобы эти файлы располагались в другом каталоге (/target/server), необходимо запускать JVM с необходимым текущим каталогом. Поскольку maven-плагин запускается IDE, не существует возможности её изменить (изменение user.dir неполноценно, варианты с JNI тоже кажутся излишними, прокидывать JWDT отладку в дочерний процесс не получится).
Тоже самое относится к каталогу /logs. Приемлемым вариантом может быть добавление всех этих файлов в .gitignore.
Файлы server.properties, commands.yml, bukkit.yml, spigot.yml, paper.yml располагаются в /target/server/ (т.к. их расположение указывается параметрами командной строки).
Исходный код.
Данный maven-плагин является open-source проектом. Исходный код расположен здесь.
Также имеется пример корректной настройки pom.xml в подпроекте example.
На момент публикации статьи плагин находится в состоянии proof-of-concept и по сути представляет собой minimal valuable product. В ближайшее время его ожидает критический рефакторинг и расширение функционала, поэтому прошу пока воздержаться от форков и PR (тем не менее я, конечно, буду их рассматривать).
На сегодняшний день у меня нет какого-либо собственного общедоступного хостинга, поэтому до появления такового артефакты будут расположены в основном репозитории и доступны через GitHub Pages (но я рекомендую вам никогда так не делать!). Если появится хостинг, то я постараюсь опубликовать плагин в Maven Central.
Changelog.
Данный maven-плагин создавался с целью упростить получение серверного ядра для отладки плагинов и разрабатывался с упором на скачивание .jar / .zip с интернет-ресурса Yive's Mirror. К сожалению, данный сайт приказал долго жить, и сейчас плагин ориентируется на запуск сервера из локально расположенного .jar / .zip серверного ядра. Однако, поскольку и сам проект уже находится в стадии только фикса багов, проводить его rename-инг считаю избыточным.
Краткое описание.
Данный плагин для системы сборки Maven осуществляет следующие действия:
- Подготавливает определённым образом каталог для запуска сервера (внутри /target).
- Запускает сервер, позволяя разработчику пользоваться всеми средствами IDE для отладки.
Инструкция в картинках в следующем посте.
Откройте ваш pom.xml.
Добавьте следующий репозиторий, чтобы позволить Maven найти на просторах интернета нужный плагин:
XML:
<pluginRepositories>
<pluginRepository>
<id>yivemirror-maven-plugin-repo</id>
<url>https://simsonic.github.io/yivemirror-maven-plugin/</url>
</pluginRepository>
</pluginRepositories>
В настройки сборки проекта добавьте следующий плагин:
XML:
<plugin>
<groupId>ru.simsonic.minecraft</groupId>
<artifactId>yivemirror-maven-plugin</artifactId>
<version>1.4-SNAPSHOT</version>
<configuration>
<serverJar>../my_own_server.jar</serverJar>
<directory>server</directory>
<resources>server-resources</resources>
</configuration>
</plugin>
- serverJar — относительный путь к .jar (или .zip) файлу с ядром. Данный файл будет закеширован плагином при первом запуске (если это .zip — вместе со всеми дополнительными файлами в нём, обычно это папка libraries).
- directory — название каталога в /target, где будут расположены файлы настроек запускаемого сервера, папки с мирами и плагинами. Например, для значения server каталог запуска будет /target/server/.
- resources — относительный путь к каталогу, файлы из которого будут скопированы в каталог сервера непосредственно перед запуском. Предназначен для хранения плагинов-зависимостей, настроек, заранее созданных миров и т.п.).
Код:
> mvn clean verify yivemirror:run
Известные ограничения и способы их обхода.
Часть серверных файлов создаётся в корневой папке проекта (eula.txt, help.ylm, ops.json и др.)
Для того, чтобы эти файлы располагались в другом каталоге (/target/server), необходимо запускать JVM с необходимым текущим каталогом. Поскольку maven-плагин запускается IDE, не существует возможности её изменить (изменение user.dir неполноценно, варианты с JNI тоже кажутся излишними, прокидывать JWDT отладку в дочерний процесс не получится).
Тоже самое относится к каталогу /logs. Приемлемым вариантом может быть добавление всех этих файлов в .gitignore.
Файлы server.properties, commands.yml, bukkit.yml, spigot.yml, paper.yml располагаются в /target/server/ (т.к. их расположение указывается параметрами командной строки).
Исходный код.
Данный maven-плагин является open-source проектом. Исходный код расположен здесь.
Также имеется пример корректной настройки pom.xml в подпроекте example.
На момент публикации статьи плагин находится в состоянии proof-of-concept и по сути представляет собой minimal valuable product. В ближайшее время его ожидает критический рефакторинг и расширение функционала, поэтому прошу пока воздержаться от форков и PR (тем не менее я, конечно, буду их рассматривать).
На сегодняшний день у меня нет какого-либо собственного общедоступного хостинга, поэтому до появления такового артефакты будут расположены в основном репозитории и доступны через GitHub Pages (но я рекомендую вам никогда так не делать!). Если появится хостинг, то я постараюсь опубликовать плагин в Maven Central.
Changelog.
- 1.1-SNAPSHOT: Реализована поддержка PaperSpigot (serverType = "paper_spigot")
- 1.2-SNAPSHOT: Корректная работа с версиями "latest" (определение изменений по размеру файла)
- 1.4-SNAPSHOT: Поддержка .zip (полезно при работе с Thermos); локально расположенных файлов; исправлено много багов.
Последнее редактирование:








