Запуск спрея на IntelliJ

Я пытаюсь запустить пример Spray на IntelliJ 14.

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

Но у меня есть 2 основные проблемы (вероятно, 2 проблемы связаны):

1) По какой-то причине, когда я добавляю в свой файл build.sbt: «io.spray» %% «spray-json» % «1.2.6», он ничего не делает (я не могу импортировать spray.json).

2) IntelliJ показывает ошибку в строке: Revolver.settings. Я считаю, что это причина того, что когда я меняю код, он не меняется при обновлении браузера. Ошибка, которую показывает intelliJ: «Тип выражения (определение Def.Settings) должен соответствовать настройкам [_] в файле SBT».

Кто-нибудь знает, как решить эту проблему?

Мой build.sbt после изменения: Revolver.settings на: Revolver.settings: Seq[sbt.Def.Setting[_]]:

organization  := "com.example"

version       := "0.1"

scalaVersion  := "2.10.4"

scalacOptions := Seq("-unchecked", "-deprecation", "-encoding", "utf8")



libraryDependencies ++= {
  val akkaV = "2.3.6"
  val sprayV = "1.3.2"
  Seq(
    "io.spray"            %%  "spray-json"        % "1.2.6",
    "io.spray"            %%  "spray-can"     % sprayV,
    "io.spray"            %%  "spray-routing" % sprayV,
    "io.spray"            %%  "spray-testkit" % sprayV  % "test",
    "com.typesafe.akka"   %%  "akka-actor"    % akkaV,
    "com.typesafe.akka"   %%  "akka-testkit"  % akkaV   % "test",
    "org.specs2"          %%  "specs2-core"   % "2.3.7" % "test"
  )
}

Revolver.settings: Seq[sbt.Def.Setting[_]]

person bashan    schedule 29.11.2014    source источник
comment
Можете ли вы разместить свой файл build.sbt здесь?   -  person Maxim    schedule 29.11.2014
comment
@Maxim Я добавил содержимое файла. Обратите внимание, что мне удалось исправить ошибку IntelliJ, и после закрытия и открытия IntelliJ он также добавил поддержку JSON. Но автодозагрузка ресурсов по прежнему не работает.   -  person bashan    schedule 29.11.2014


Ответы (1)


Я столкнулся с обеими этими проблемами в свое время с IntelliJ 14. Вот несколько советов:

  1. Убедитесь, что вы используете последнюю версию IDEA 14 (по крайней мере, сборка 139.224, 4/14 ноября)
  2. Убедитесь, что вы используете последнюю версию подключаемого модуля Scala (1.1.3).
  3. Замените Seq[sbt.Def.Setting[_]] на Seq[sbt.Setting[_]] везде (это псевдонимы типов)
  4. При обновлении файлов сборки вручную обновите проект IntelliJ из «внешнего проекта» SBT.

Шаг 4 требует некоторого пояснения.

Плагин Scala обеспечивает совместимость с Play, Twirl, SBT и Scala в одном комплекте. Одна из его функций — предоставление инструмента SBT (вероятно, он отображается в правой части окна IDEA). Когда он открыт, он выглядит так:

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

Вы можете щелкнуть значок обновления (круглые стрелки) в левом верхнем углу или щелкнуть правой кнопкой мыши имена задач (scrupal на изображении) и выбрать «Обновить внешний проект». Оба этих действия делают одно и то же: запускают SBT, обновляют проект и регенерируют файлы проекта IntelliJ из настроек и определений SBT.

Вы можете сделать это несколькими другими способами. Вы уже нашли один способ: перезапустите IntelliJ IDEA. Другой способ - установить для поддержки SBT плагина Scala значение «Автоматический импорт». Если эта функция включена, она будет повторно импортировать настройки SBT и обновлять ваш проект IDEA при каждом изменении исходных файлов SBT. Я обычно держу это выключенным, потому что раздражает попытка повторного импорта (длительный процесс) после каждых нескольких нажатий клавиш, когда я изменяю файлы. Итак, я использую ручной подход и сообщаю IntelliJ, когда хочу его обновить.

Чтобы включить автоматический импорт, перейдите в настройки IntelliJ, выберите «Сборка, выполнение, развертывание», выберите «Инструменты сборки», выберите «SBT», а затем на правой панели выберите свой проект и установите флажок «Использовать автоматический импорт». поле. - Перезапустите IntelliJ IDEA. Вы уже обнаружили, что это работает. - Установите плагин Scala на «Автоматический импорт».

person Reid Spencer    schedule 30.11.2014