Мне нужно разработать плагин для Eclipse, но я предпочитаю IntelliJ IDEA как IDE. Можно ли настроить IDEA для разработки плагинов Eclipse?
Как использовать IntelliJ IDEA для разработки плагинов Eclipse?
Ответ 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
-
Откройте структуру проекта (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 не может запускаться с терминала.