Проблемы построения приложения Eclipse RCP - PullRequest
2 голосов
/ 22 сентября 2011

Я пытаюсь создать приложение Eclipse RCP с Maven / Tycho на основе функций.Мое приложение - это простой язык с редактором (встроенным с помощью Xtext) и несколькими другими плагинами, которые являются зависимостями от проекта.Существует несколько инструкций, в которых описывается, как создать приложение Eclipse RCP, например,

http://mattiasholmqvist.se/2010/03/building-with-tycho-part-2-rcp-applications/

или

https://kthoms.wordpress.com/2010/11/12/setting-up-a-rcp-product-for-a-dsl/

Пока чточто я сделал:

  1. Создан проект плагина, который содержит файл feature.xml.Файл feature.xml состоит из языковых плагинов и их зависимостей

  2. Создан проект плагина, который содержит определение продукта.Определение продукта названо в честь имени проекта плагина (Mattias Homlqvist (первая ссылка в этом посте) подчеркивает, что Tycho делает предположения относительно имени файла продукта (по отношению к имени проекта плагина)).В определении продукта я создал новый продукт и указал на приложение «org.eclipse.ui.ide.workbench».Я также добавил свой плагин функций и функции org.eclipse.pde и org.eclipse.rcp на вкладку зависимостей в редакторе.

Если я пытаюсь запуститьпродукт я получаю исключение:

java.lang.RuntimeException: No application id has been found.
    at org.eclipse.equinox.internal.app.EclipseAppContainer.
      startDefaultApp(EclipseAppContainer.java:242)
    at org.eclipse.equinox.internal.app.MainApplicationLauncher.
      run(MainApplicationLauncher.java:29)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.
      runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.
      start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.
      run(EclipseStarter.java:344)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.
      run(EclipseStarter.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.
      invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.
      invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

Хорошо, что-то пошло не так.Теперь я проверяю, все ли необходимые плагины добавлены в диалог конфигурации запуска на вкладке «Плагины».Итак, продукт и плагин не выбраны.Если я нажимаю «добавить необходимые плагины», добавляется плагин продукта, нажимая «проверить плагины», просто всплывающее окно с сообщением «проблем не обнаружено».Если я снова попытаюсь запустить продукт, я получу то же исключение.Нажатие «Синхронизировать» в редакторе определения продукта отменяет внесенные мной изменения (продукт и функция отменены) - и мне интересно, почему?

Кажется, что сама сборка Maven / Tycho работает.Если я пытаюсь собрать проект с

mvn install 

, создаются ZIP-файлы для соответствующих платформ.К сожалению, проблема все еще существует, и сборка не является исполняемой.Так что, вероятно, я допустил ужасную ошибку в своем проекте функции и / или плагина продукта.Может быть, у кого-то есть идея или она может указать мне правильное направление?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 27 октября 2011

ваш продукт должен быть «основан на функциях», и в вашу функцию вы должны добавить те же плагины, которые вы добавили в свой plugin.xml
плюс, на вкладке «включенная функция» вы должны добавить org.eclipse.rcpособенность

1 голос
/ 21 октября 2011

У меня была похожая проблема, и у меня сработало, чтобы проверить «Автоматически добавлять новые подключаемые модули рабочей области в эту конфигурацию запуска» во вкладке «Подключаемые модули».проверьте автозапуск (для меня «по умолчанию» сработало).

С наилучшими пожеланиями.

...