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

17

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

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

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

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

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

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

EDIT: после запуска activator clean ~run у меня есть еще одна ошибка: проект не может быть создан до тех пор, пока ошибки пути построения не будут устранены. Нет никаких подробных сведений о том, что такое ошибки пути сборки.

    
задан Kat 23.01.2015 в 08:28
источник
  • Вы когда-нибудь это выясняли? У меня такая же проблема. Подозреваем, что плагин не работает с 4.0 scala ide, но только 3.x –  user384842 11.02.2015 в 17:39

6 ответов

24

Обновление: Просто обновите до 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, чтобы получить изменения.

    
ответ дан mkurz 16.02.2015 в 22:42
  • Это вводит путь сборки содержит повторяющуюся запись: «target / scala-2.11 / src_managed / main» для проекта «...». Поэтому, хотя его можно вручную удалить из проекта java-сборки проекта в eclipse, это не совсем так, как есть. Кроме того, я думаю, что чистый проект необходим не просто для обновления при внесении такого рода изменений. Это решение ведет себя довольно странно для меня. –  matanster 27.02.2015 в 12:24
  • После выполнения инструкций по обновлению и восстановлению проблема осталась. Когда я открывал путь к проекту -> java, несколько путей, таких как twirl / test и ... / managed / ..., все еще сказали [пусто] после их имен. Мне пришлось удалить проект eclipse, а затем повторно импортировать его до того, как все записи java-path присутствуют, а объект вида не найден. –  Stephen W. Wright 10.03.2015 в 16:22
  • @matt, в случае, если вы все еще нуждаетесь в этом, я нашел обход этой ошибки и разместил ее как решение ниже. –  webdevelopersdiary 11.04.2015 в 11:08
  • Спасибо! Я привык к ручному решению этого вопроса после каждого затмения sbt, но попытаюсь, если он не будет разрешен в следующей версии Play и ScalaIDE –  matanster 11.04.2015 в 11:32
  • Это не работает с Play 2.4.2 –  pitchblack408 09.08.2015 в 02:28
Показать остальные комментарии
12

У меня была та же проблема, также с 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

    
ответ дан Luis Rodero-Merino 16.02.2015 в 23:36
  • Eclipse не видит папку «scala-2.11» под прицелом ... это такая шутка –  Space monkey 13.12.2015 в 19:06
  • См. мой обновленный ответ: обновите sbteclipse до версии 5.1.0 (выпущен вчера), и теперь все должно работать из коробки. –  mkurz 13.01.2017 в 12:47
4

Сначала я попробовал решение @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" }

До свидания, постройте ошибки!

    
ответ дан webdevelopersdiary 11.04.2015 в 11:07
  • То же самое для меня. Это было второе решение, указанное выше, которое работало для меня, первое - нет. Спасибо! –  Skychan 12.08.2015 в 15:54
0

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

    
ответ дан gun 23.01.2015 в 09:09
  • Он использовал Java 8 как JRE, но переход на Java 7 (и перезапуск) не повлиял. –  Kat 23.01.2015 в 20:02
0

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

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

    
ответ дан Stephen W. Wright 10.03.2015 в 16:37
0

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

    
ответ дан Sayantam 05.11.2015 в 16:00