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

"индекс объекта не является членом пакета views.html" при открытии проекта воспроизведения scala в scala ide

Я создал игровой проект с игрой 2.3.7

В каталоге проекта я запустил активатор и запустил команду eclipse для создания файлов проекта eclipse.

Когда я перехожу к eclipse (я использую Scala IDE из типов: Тип сборки: id: 4.0.0-vfinal-20150119-1023-Typesafe, в моем файле Application.scala есть ошибка:

object index is not a member of package views.html

Что-то не так с моей настройкой? Приложение работает нормально, когда я выполняю run в приглашении консоли активации.

Спасибо!

EDIT: Добавлен код

package controllers

import play.api._
import play.api.mvc._

object Application extends Controller {

  def index = Action {
    Ok(views.html.index("Your new application is ready."))
  }

} 

Ошибка находится в строке "Ok..".

В представлениях, называемых index.scala.html, есть файл, и приложение запускает файл, когда я запускаю его из активатора.

4b9b3361

Ответ 1

Иногда после добавления представления в Play 2.4.x IntelliJ IDEA иногда путается и абсолютно отказывается строить. Даже перестраивать проект не удается:

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

Это все время происходит от времени от времени в IDEA 15. И когда это происходит, командная строка обеспечивает самое быстрое и надежное исправление:

sbt clean; sbt compile

Что это! ИДЕЯ теперь будет компилировать проект, как ожидалось.

Update:

В редком случае, когда sbt compile успешно завершен в командной строке, но IntelliJ IDEA 15 все еще дает ту же ошибку "объект x не является членом", тогда это решило путаницу IDEA:

Меню "Файл":

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

Ответ 2

Другие решения не помогли мне. Некоторые из них дадут мне разные ошибки, некоторые уберут вкладку "Проблемы", но оставят меня с красным отбросом под views.html.index, а автозаполнение не будет работать с шаблонами scala.html.

Что в конечном итоге работало, так это открыть свойства проекта, перейти в Java Build Path > Source и добавить оба следующих каталога:

target/scala-2.11/src_managed/main
target/scala-2.11/twirl/main

Если вы выполняете только target/scala-2.11/twirl/main, вы пропустите файлы классов, созданные в каталоге conf.

Ответ 4

У меня была та же проблема. Я добавил target/scala-2.x/classes и target/scala-2.x/classes_managed в мой путь построения Java, и Eclipse перестала жаловаться.

Ответ 5

У меня была одна и та же проблема с запуском Play 2.4.0-RC1 с использованием макета SBT по умолчанию (disablePlugins(PlayLayoutPlugin)) и была решена с помощью добавления build.sbt:

sourceDirectories in (Compile, TwirlKeys.compileTemplates) :=
    (unmanagedSourceDirectories in Compile).value

Ответ 6

Добавление target/scala-2.11/twirl/main, у которого есть пакет views.html для исправления для меня.

Ответ 7

Ответ на
fred ответил мне, но только изначально. Каждый раз, когда я перестраивал проект изнутри IDEA, я получал ошибки "не найден: маршруты" в пределах target\scala-2.11\twirl\main\views\html\main.template.scala, пока я не повторил обходное решение Brent.

В итоге я обнаружил, что решение этого вопроса изменило строку в .iml файле из

<excludeFolder url="file://$MODULE_DIR$/target/scala-2.11/src_managed/main" />

к

<sourceFolder url="file://$MODULE_DIR$/target/scala-2.11/src_managed/main" isTestSource="false" />

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

Ответ 8

Для меня при импорте проекта в intellij, убедившись, что я "проверил", флажок "автоматический импорт" сделал трюк.

Ответ 9

1) Добавьте следующую строку в файл sbt.build:

EclipseKeys.preTasks := Seq(compile in Compile)

2) Добавьте строку follwing в файл plugins.sbt в папке проекта:

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.1.0")

3) Запустите команду "затмение" изнутри sbt

как объясняется в документации к платформе воспроизведения:

Настройка предпочтительной среды IDE

Ответ 10

В принципе, нам нужен способ поставить скомпилированные классы на путь для этого.

Я сделал следующее, чтобы исправить это. Поскольку проекты компилируются в каталог target. Я перешел на путь сборки Java Project Properties → и добавил несколько папок, которые выглядят следующим образом:

мишень/scala -2,12/маршруты/основные мишень /scala -2,12/Гайковерты мишень / scala -2,12/Гайковерты/Основной

Теперь я не хочу, чтобы вы предполагали, что у вас будут эти точные папки и в вашем случае. Это зависит от настройки вашего проекта. Но вы должны добавить папки в папку target/ scala -2.x.

Ответ 11

Я перепробовал все решения без какого-либо позитивного результата.
Поэтому я пошел в " Preferences > Build, Execution, Deployment > Build Tools > sbt и Preferences > Build, Execution, Deployment > Build Tools > sbt флажок " Use sbt shell для импорта и сборки".
Это позволило кнопке компиляции в intelliJ скомпилировать с оболочкой sbt. Я думаю, что в любом случае это лучше, так как сервер сборки или что-то подобное будет компилироваться таким же образом, а не как intelliJ.