Запустить конфигурацию для отладки плагина Bukkit / Minecraft в IntelliJ IDEA?

Я помогаю своему ребенку научиться создавать плагины Minecraft, хотя у меня нет большого опыта работы с Java или IDEA. Пока все работает хорошо, но для того, чтобы выполнить наш код, мы должны:

  1. сделать проект в IDEA (выходной путь установлен в Bukkit/plugins)
  2. запустить сервер Bukkit
  3. запустите Minecraft и подключитесь

Я не уверен, что что-то можно сделать с (3), но мне кажется, что идея должна быть в состоянии справиться (1) & (2) в одном шаге. Кроме того, в настоящее время мы не можем отлаживать эту конфигурацию.

в Visual Studio / .NET мне просто нужно указать исполняемый файл -- java / craftbukkit, в этом случае -- as "внешний программу" и это решило бы все эти проблемы. В идее, однако, кажется, что я должен добавить конфигурацию запуска, и я не вижу опции, которая позволяет что-либо вроде "хост-приложения"."Вместо этого он хочет полный путь к классу main для Буккита, и мне непонятно, что это будет. Я также видел, что он предложил в другом месте, что даже это не будет работать без отладочной сборки Bukkit. но я действительно не хочу отлаживать Bukkit; я просто хочу отлаживать только наш код плагина.

нашел эти инструкции для удаленной отладки плагинов Bukkit, но это действительно необходимо? Это не решает проблему "два шага для запуска"; это на самом деле делает его хуже!

4 ответов


Я понимаю, что этому вопросу больше года, но у меня тоже недавно была эта проблема, и я не нашел удовлетворительных ответов. Вот как я решил это, с помощью ответа @hunterboerner.


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

  1. перейдите в раздел "файл > структура проекта > артефакты"
  2. Добавить новый артефакт из шаблона "Другие"
  3. установите "выходной каталог" в plugins каталог тестового сервера
  4. в разделе " доступные элементы "щелкните правой кнопкой мыши запись"'имя_проекта 'compile output", а затем нажмите " Pack into/имя_проекта.jar"

если ваш проект не имеет :

  1. выберите новую запись файла jar в разделе " корень вывода "и нажмите" Создать Манифест..."
  2. перейдите в каталог сохраняются исходные файлы java проекта (например,src/main/java/)

пример конфигурации артефакта:example artifact config

затем вам нужно создать конфигурацию запуска, которая выполняет JAR сервера Spigot:

  1. перейдите в раздел "выполнить" > " редактировать конфигурации..."
  2. добавить новую конфигурацию "JAR Application"
  3. установите "путь к JAR" на тестовый сервер Spigot JAR
  4. установить "рабочий каталог" в каталоге тестирования сервера
  5. в разделе " перед запуском "добавьте новую задачу" построить артефакты"
  6. отметьте артефакт, созданный выше в списке

пример конфигурации запуска:example run config

после выполнения этих действий, "отладка" настройки или нажмите клавишу SHIFT+F9. Это автоматически создаст jar плагина, скопирует его на сервер тестирования и выполнит этот сервер с полными средствами отладки, включая точки останова и горячая замена кода.


Если вам не нужно использовать IntelliJ IDEA, я бы предложил вам использовать eclipse. Я работал уже более двух лет с eclipse, без каких-либо проблем. Отладчик eclipse имеет очень хороший обзор всех значений, поэтому я думаю, что это не проблема.

чтобы решить вашу проблему, вы можете попробовать использовать это учебное пособие GDorn. Он описывает, как отлаживать плагин bukkit с сервером. Я не пробовал этого, но кажется, что он собирается работа.

резюме

сначала вам нужно открыть конфигурации запуска и создать новую конфигурацию приложения. На вкладке classpath необходимо удалить все "пользовательские записи". Убедитесь, что" загрузочные записи " содержат библиотеку JRE. Также добавьте две внешние банки, craftbukkit.jar (сервер Bukkit) и сервер minecraft_server.банка (ванильный сервиз).

Я не знаю, почему вы должны добавить сервер Vanilla, я читал, что в учебнике вы можете попробовать без него. В противном случае, вы можете найти его здесь.

после этого, установите свой рабочий каталог в разделе аргумента. Сохраните его и запустите.

вы все можете прочитать это в учебнике по ссылке. Он описывает это немного лучше, чем мое резюме. Вы также можете попробовать использовать эту информацию для своей идеи IntelliJ, возможно, это даст вам совет, как ее решить.


во-первых, вам нужно создать артефакт. Пример скриншота здесь:

artifact

Это можно найти в разделе файл>структура проекта

затем перейдите в Run>Build Configuration и создайте конфигурацию Maven

вам не нужно заполнять какие-либо параметры. Перейдите в раздел перед запуском и добавьте артефакт. Затем нажмите кнопку Добавить, запустите внешний инструмент. Создать одно. Заполнить его. Ниже приведен пример.

run external

Как только это добавлено в конфигурация сборки просто перейдите в Run>Run, и она должна работать в консоли ниже.


Я не думаю, что есть какой-либо возможный способ автоматического развертывания и запуска сервера Bukkit. IntelliJ требует, чтобы класс с основным методом был определен в конфигурации запуска, что невозможно сделать, если в проекте нет источника Bukkit. Я сделаю некоторые дальнейшие исследования, но я уже рассматривал эту тему раньше и вышел с пустыми руками. Что я делаю в качестве альтернативы, это сделать плагин дружественным к перезагрузкам и просто запускать / перезагружать каждый раз, когда вы развертываете новый версия.