Подтвердить что ты не робот

Как использовать IntelliJ IDEA для разработки плагинов Eclipse?

Мне нужно разработать плагин для Eclipse, но я предпочитаю IntelliJ IDEA как IDE. Можно ли настроить IDEA для разработки плагинов Eclipse?

4b9b3361

Ответ 1

Это должно быть возможно с помощью Eclipse Tycho.

Вы будете использовать maven, и это отлично работает с IntellIj.

Tycho ориентирован на основанный на Maven, явный подход к созданию плагинов Eclipse, функциям, сайтам обновлений, приложениям RCP и пакетам OSGi. Tycho - это набор плагинов Maven и расширений для создания плагинов Eclipse и пакетов OSGi с Maven.

Ответ 2

Возможно, можно использовать Osmorc, но я этого не пробовал. Однако у меня есть метод, который работает (используя IntelliJ 2017.1, но он должен быть похож на другие версии). Это не требует Eclipse Tycho, который я не мог использовать, потому что мой плагин использовал XCore, который не кажется совместимым с Tycho.

  • Создайте проекты в Eclipse.
  • Создайте проект IntelliJ.
  • Внутри IntelliJ

    • Файл > Создать > Модуль из существующих источников. Выберите проект eclipse.
    • Модуль импорта из внешней модели

      введите описание изображения здесь

    • Чтобы не испортить проекты Eclipse, я выбрал "Сохранить файлы проекта и модуля в ~/IdeaProjects/MyIntelliJProject

    • Повторить для каждого проекта eclipse
  • Откройте структуру проекта (Ctrl + Alt + Shift + S)

  • В "Глобальных библиотеках" (или даже только в библиотеках) добавьте новую библиотеку Java.
  • Выберите каталог /opt/eclipse/plugins (или везде, где было затмение)
  • Убедитесь, что каждый модуль имеет эту библиотеку ECLIPSE в качестве последней зависимости.

На этом этапе вы должны иметь возможность кодировать и запускать тесты в IntelliJ, но для фактического запуска плагина вам нужно использовать Eclipse. Это немного беспорядочно.

Мое решение состояло в том, чтобы запустить ту же команду, что и Eclipse при запуске вашего плагина:

  • Получить плагин BashSupport IntelliJ (возможно, это должно быть что-то еще в Windows, возможно, вы можете запустить пакетный файл)
  • В Eclipse запустите плагин (запустите приложение Eclipse).
  • Откройте перспективу отладки. Вы должны увидеть что-то вроде этого:

    Стек отладки

  • Щелкните правой кнопкой мыши на свойствах /usr/lib/jvm/... (может быть другой Java JVM)

  • Скопировать командную строку:

    Свойства процесса

  • В другом месте в вашем любимом редакторе создайте новый bash файл (я помещаю этот файл в папку проекта IntelliJ) и вставляем эту команду там.

  • Обратите внимание, что когда Eclipse запускает команду, она запускается из рабочего каталога /opt/eclipse/ (или везде, где установлено затмение), поэтому нам нужно заранее добавить cd /opt/eclipse/. Позвольте сделать это и в новой оболочке:

    (cd /opt/eclipse && /usr/lib/jvm/java-8-oracle/bin/java ...)
    

    Если этот bash script запущен, он должен быть таким же, как если бы мы бежали из Eclipse.

  • В IntelliJ создайте новую конфигурацию запуска bash (Alt + Shift + F10 > Edit Run Configurations). В поле "Script:" укажите путь к только что созданному файлу bash.

    Также добавьте "Build Project" в опции "Перед запуском".

    Кроме того, поставьте галочку в поле "Только один экземпляр".

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

  • Создайте новую конфигурацию запуска IntelliJ типа "Remote", отметив ее как "Только один экземпляр"
  • Скопируйте "Аргументы командной строки для запуска удаленной JVM". Для меня это

    -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
    

    Мне понравился рабочий процесс для suspend=y лучше; в основном это означает, что приложение eclipse не запустится до тех пор, пока мы не приложим отладчик.

  • Скопируйте файл bash и добавьте следующие аргументы:

    (cd /opt/eclipse && /usr/lib/jvm/java-8-oracle/bin/java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 ...)
    
  • Добавьте еще одну конфигурацию запуска bash для IntelliJ, которая запускает этот новый script (а также запускает "Build Project" заранее и является "единственным экземпляром" ).

Теперь, чтобы отладить ваш плагин Eclipse, запустите конфигурацию Debug bash, затем запустите удаленную конфигурацию.

В конце концов, вот как выглядят мои конфигурации запуска:

введите описание изображения здесь

В этот момент единственное, что требуется Eclipse для редактирования моих файлов .xcore, поскольку Eclipse генерирует код Java из этого, и XCore не может запускаться с терминала.