Scala IDE 4.0.0 считает, что в готовой программе Play Framework 2.3.7 есть ошибки

Я создал программу Play Framework через Typesafe Activator (поэтому он точно соответствует шаблону).

я использовал sbteclipse-plugin версия 3.0.0, чтобы создать проект Eclipse и импортировать его в Scala IDE 4.0.0. Это все последние версии на момент написания.

Scala IDE определенно поддерживает Play Framework. Он имеет подсветку синтаксиса для пользовательских форматов, включая файл маршрутизации и шаблоны. Тем не менее, кажется, что он не может найти мнения от контроллеров. В частности, призыв к views.html.index вызывает ошибку: "индекс объекта не является членом пакета views.html".

введите описание изображения здесь

Я попытался включить обновление с использованием встроенных перехватчиков или пула, как подробно описано здесь, но это никак не повлияло.

Я должен отметить, что хотя код был скомпилирован в командной строке (с activator ~run), он не был скомпилирован в Scala IDE, так как я не знаю, как это сделать (кажется, это нигде не документировано).

Что я могу сделать, чтобы избавиться от этих ложных ошибок?

РЕДАКТИРОВАТЬ: после запуска activator clean ~run, У меня есть другая ошибка: проект не может быть собран, пока ошибки пути сборки не будут решены. Там нет более подробной информации о том, что эти ошибки пути сборки.

6 ответов

Решение

Обновление: просто обновить до sbteclipse версия 5.1.0 и все должно работать из коробки. Также убедитесь, что вы следуете документации Play по настройке Eclipse / ScalaIDE.


Это известная ошибка в sbteclipse, что, вероятно, будет исправлено в ближайшее время.

А пока вы можете добавить следующую строку в ваш build.sbt:

EclipseKeys.createSrc := EclipseCreateSrc.All

Убейте консоль SBT и запустите sbt eclipse снова. Это должно добавить следующую строку к .classpath файл в папке вашего проекта в качестве обходного пути:

<classpathentry kind="src" path="target/scala-2.11/twirl/main"/>

Обновите свой проект Eclipse, чтобы получить изменения.

У меня была такая же проблема, также с Scala IDE 4.0.0 . Я следовал mkurz Mkurz, и они работали как шарм. Но вместо изменения .classpath Файл в папке проекта вручную я использовал интерфейс Eclipse:

  • В верхнем меню главного окна нажмите на Project а затем на Properties,
  • в Properties окно, нажмите на Java Build Path опция (список опций слева)
  • в Source вкладка, нажмите на Add Folder... кнопка.
  • в Source Folder Selection окно, выберите target/scala-2.11/twirl/main папка, поэтому она включена в путь компиляции. Нажмите Ok кнопка.
  • Нажмите Ok в Properties окно.

Теперь проект должен скомпилироваться просто отлично:) . На этом я смог закончить пример настройки игры на веб-сайте Scala IDE.

Сначала я попробовал решение @mkurz, но также столкнулся с той же ошибкой, что и @matt. Я разочаровался в том, что не смог сгенерировать проект eclipse, не перейдя в свойства проекта Eclipse, чтобы вручную исправить ошибки сборки. После некоторого расследования я обнаружил решение, которое полностью удалило все ошибки. Добавьте это ваше build.sbt:

unmanagedSourceDirectories in Compile <+= twirlCompileTemplates.target

Или, если это не работает для вас, вы также можете использовать:

unmanagedSourceDirectories in Compile <+= target.zipWith(scalaBinaryVersion) { (b,v) => b / s"scala-$v/twirl/main" }

До свидания, ошибки сборки!

Я получил то же сообщение об ошибке. Вы используете java8 как jre в затмении? После переключения с java8 на java7 все снова заработало нормально.

Для меня оказалось, что установленный JRE в Scala IDE был openjdk, изменил его на Oracle Java 8, и он работал.

Если после выполнения инструкций Mkurz (добавив EclipseKeys.CreateSrc...) проблемы не будут решены, нажмите "Проект" -> "Свойства" -> "Путь сборки Java". Посмотрите на вкладку исходных папок.

Вы можете найти дубликат файла с именем.../src_managed/main (спасибо, Мэтт). Если это так, закройте проект. Удалите ОДНУ из двух записей../src_managed/main из файла.classpath (расположенного в базе каталога проекта activator/SBT). Вновь откройте и очистите проект, и вы должны быть готовы к работе.

Другие вопросы по тегам