Scala IDE 4.0.0 считает наличие ошибок в готовой программе Play Framework 2.3.7
Я создал программу Play Framework через Activator Activator (так что она точно соответствует шаблону).
Я использовал sbteclipse-plugin
версию 3.0.0 для создания проекта Eclipse и импортировал его в Scala IDE 4.0.0. Это все последние версии на момент написания.
IDE Scala определенно, похоже, поддерживает Play Framework. Он имеет подсветку синтаксиса для пользовательских форматов, включая файл маршрутизации и шаблоны. Тем не менее, похоже, он не может найти точки зрения от контроллеров. В частности, вызов views.html.index
вызывает ошибку: "object index не является членом пакета views.html".
![enter image description here]()
Я попробовал включить обновление с помощью собственных перехватов или объединения в качестве подробнее здесь, но это не повлияло.
Следует отметить, что, хотя код был скомпилирован в командной строке (с activator ~run
), он не был скомпилирован в Scala IDE, так как я не знаю, как это сделать (это не кажется для документирования в любом месте).
Что я могу сделать, чтобы избавиться от этих ложных ошибок?
EDIT: после запуска activator clean ~run
у меня есть еще одна ошибка: проект не может быть создан до тех пор, пока ошибки пути построения не будут устранены. Нет никаких подробностей о том, что такое ошибки пути сборки.
Ответы
Ответ 1
Обновление: Просто обновите до sbteclipse
version 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, чтобы получить изменения.
Ответ 2
У меня была та же проблема, также с Scala IDE 4.0.0. Я следил за 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
Ответ 3
Сначала я попробовал решение @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" }
До свидания, постройте ошибки!
Ответ 4
У меня такое же сообщение об ошибке.
Вы используете java8 как jre в eclipse?
После переключения с java8 на java7 все снова работало нормально.
Ответ 5
Если после выполнения инструкций Mkurz (добавление EclipseKeys.CreateSrc...), ваши проблемы не будут решены, щелкните Project → Properties → Java Build Path. Посмотрите вкладку исходных папок.
Вы можете найти дубликатную папку с именем... /src _managed/main (Спасибо Matt). Если это так, закройте проект. Удалите одну из двух записей.. /src _managed/main из файла .classpath(расположенного в базе каталога проекта активатора /SBT ). Восстановите и очистите проект, и вам должно быть хорошо.
Ответ 6
Для меня оказалось, что установленная JRE в Scala IDE была openjdk, изменила ее на Oracle Java 8 и работала.