Не удается скомпилировать классы XTend в Intellij

Я пытаюсь создать базовую программу, используя XTend для Intellij 15.0.5 (Ultimate), но по какой-то причине я не могу запускать/компилировать какие-либо файлы «.xtend».

Написать следующий код не проблема, и ide проверяет синтаксические ошибки, как и ожидалось:

package presentation

class Greeter {
    def static void main(String[] args){
        println("Hello World!");
    }
}

Я загрузил и установил плагин пользовательского языка и могу создать новый проект Java с помощью XTend. Однако я не могу запускать/компилировать какие-либо файлы расширения.

При выполнении правого щелчка на файле расширения нет «запуска». Что еще более интересно, Intellij позволяет мне реорганизовать обычные классы Java в классы xtend. Кроме того, я не могу выбрать Greeter в качестве основного класса в конфигурации запуска.

Конечно, я также добавил обязательные библиотеки (ядро, либ и макрос). Я действительно не знаю, чего мне не хватает, но я полагаю, что это должно быть что-то очень очевидное. Помимо запуска/компиляции, все, кажется, работает как шарм.


person ImaginaryNumb3r    schedule 03.05.2016    source источник


Ответы (1)


У меня была похожая проблема, так как я только начинаю работать с Xtend.

Насколько я могу судить, вы не запускаете файлы Xtend так часто, как запускаете/компилируете файлы Java, которые автоматически генерируются Xtext (система синтаксического анализатора, которую использует Xtend).

Проблема, которая была у меня (и, скорее всего, у вас тоже) была вызвана тем, что в модуле не была включена генерация Xtend. После многих головных болей, связанных с разочарованием, я решил эту проблему, открыв страницу «Структура проекта», щелкнув вкладку «Модули», выбрав нужный модуль, щелкнув значок зеленого плюса, а затем выбрав «Расширить» в появившемся меню.

Затем должна появиться панель с кучей опций (вы должны оставить их такими, какие они есть, а затем нажать «ОК»).

Затем IntelliJ автоматически сгенерирует файл Java для каждого файла расширения. Чтобы запустить проект, вы просто настраиваете панель запуска приложений так, чтобы она указывала на сгенерированный java-файл, содержащий ваш основной метод, и тогда все должно быть хорошо.

Надеюсь это поможет.

person Leon Aquasimia    schedule 04.05.2016
comment
спасибо за быстрый ответ! Однако у меня нет меню xtend, когда я нажимаю на зеленый плюс:/ Более того, ни один из классов, которые я пишу, не перезаписывается в папку xtend-src. - person ImaginaryNumb3r; 04.05.2016
comment
У меня уже был модуль, но target/xtend-gen/main не был помечен как исходная папка, как только я это сделал, это сработало. - person Tony BenBrahim; 15.07.2017