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

Как заставить Eclipse увидеть изменения в Play! скомпилированные шаблоны?

Итак, я пытаюсь играть 2 с Eclipse. Я создаю новый проект, компилирую его, запускаю eclipsify и импортирую его в Eclipse. Пока все хорошо.

Проблема, с которой я столкнулась, заключается в том, что когда я вношу изменения в шаблон Scala, мои контроллеры Java не могут его увидеть, а Eclipse отмечает код как недействительный. Например:

Я добавил второй параметр в свой шаблон индекса

@(message: String, nesto:Integer)

Когда я пытаюсь отобразить свой файл с контроллера, следующая строка отображает ошибку, потому что Eclipse по-прежнему считает, что index.render принимает одну строку.

return ok(index.render("Your new application is ready.",2));

Я включил обновление рабочей области в Eclipse, и play eclipsify автоматически добавил каталог classes_managed в путь сборки.

4b9b3361

Ответ 1

Я сделал следующие вещи:

  • Как вы это сделали, я включил автообновление рабочей области (в настройках, General → Workspace, затем выберите "Refresh using native hooks или pooling" )
  • Я удалил каталог classes_managed, сгенерированный play eclipsify из моего пути сборки, и я добавил его вручную, используя "Добавить папку внешнего класса"

И потом это сработало для меня. Кажется, что есть ошибка с командой eclipsify.

Ответ 2

Трюк состоит в том, чтобы автоматически создавать Play в фоновом режиме (файлы шаблонов в настоящее время не созданы Eclipse, поэтому вам нужно воспроизвести их для перевода). Здесь подробно объяснено:

[мертвая ссылка] http://scala-ide.org/docs/tutorials/play20scalaide20/index.html

[попробуйте этот] http://scala-ide.org/docs/tutorials/play/index.html#installing-the-scala-ide-play2-plug-in

Ответ 3

  • Запустите "play eclipse" в командной строке
  • В Eclipse обновите свой проект, нажав F5

Ответ 4

Для Java Play Framework v2.4.6 (активатор v1.3.7) с Eclipse Mars:

Вместо @(message: String, nesto:Integer) вы пробовали этот @(message: String)(nesto: Integer)?

Чтобы у вас не было "невозможно решить проблему" с помощью index.render(), вы можете добавить этот <classpathentry kind="lib" path="target/scala-2.11/classes"/> в свой .classpath или щелкнуть правой кнопкой мыши по проекту → Путь сборки → Настроить путь сборки → Добавить папку класса и указать ее на target/scala-2.11/classes.