2016-12-29 4 views
-1

Я студент и в настоящее время занимаюсь бакалавром по информатике и разработке программного обеспечения.XTend Второе приложение Eclipse не обновляется

Из любопытства я начал проводить свободное время на DSL и купил книгу «Реализация доменов с использованием XText и Xtend» Лоренцо Беттини.

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

Примером является небольшая DSL, которая сгенерирована, а затем вам нужно было открыть новое приложение Eclipse и использовать этот DSL. В книге упоминается, что если я все-таки сменил DSL, а затем перейдите в File с окончанием «.mwe2», которое сгенерировано XTend и запускается как MWE2 WORKFLOW, оно должно быть автоматически изменено во втором приложении, в которые DSL используется.

Но мое второе приложение не обновляется. Сначала у меня была простая грамматика, которая позволяла мне использовать массивы без ввода между скобками e.G. Entity [] myEntity; , а затем в примере показано, как изменить грамматику, чтобы получить синтаксис как e.G. Сущность [10] myEntity ;. Я выполнил соответствующие действия, но, как упоминалось выше, вторая среда IDE не обновляется.

Я также проверил, что Eclipse имеет встроенную автоматическую сборку.

Кто-нибудь знает, что моя ошибка может быть?

(Я не уверен, если мне позволено размещать пример книги здесь.)

+0

эта глава вы имеете в виду? вы уверены, что перезапустили затмение во время выполнения (второе) после перезапуска рабочего процесса? –

+0

Точно глава 2 после рабочего процесса MWE2. Я понял это следующим образом. После изменения грамматики и запуска файла рабочего процесса mwe2 второе приложение eclipse обновляется автоматически. И тогда я могу работать с обновленной грамматикой. Конечно, если я закрою второе приложение и начну его, он обновится. Тогда, к сожалению, это было просто недоразумение. – xXRanaXx

+0

нет вам нужно закрыть и перезапустить затмение seconf –

ответ

1

Использование второго экземпляра Eclipse, чтобы проверить ваш DSL является предпочтительным способом. Запуск второго экземпляра Eclipse с использованием режима отладки Eclipse некоторые изменения кода автоматически распространяются на ваш второй тестовый экземпляр.

enter image description here

Но существуют ограничения для размножения изменения кода в Eclipse, работает, например: Любые изменения в любой класс подписи не могут быть размножены. Новые классы не могут быть распространены. Удаленные классы не могут быть выгружены.

Изменения в грамматике, требующие регенерации языка, изменят подписи классов и будут создавать/удалять классы. Это означает, что вам нужно перезапустить второй экземпляр Eclipse после регенерации языка. Даже если вы добавляете/удаляете классы или методы, вам необходимо перезапустить приложение Eclipse.

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