Я часами чистил интернет, есть много «полезных» советов ... которые не вызывают ничего, кроме проблем.OSX Play Framework Auto-Reload
Это я, почти точно:
Play framework auto-loading in docker container
Я бегу последнее (я думаю, не знаю, как проверить, но скачал < неделю назад) версию игры! Framework внутри Ubuntu Docker контейнер с Java 8, построенный со следующим dockerfile:
FROM ubuntu:latest
MAINTAINER [REDACTED]
RUN sudo apt-get update
RUN sudo apt-get -y install software-properties-common
RUN sudo apt-add-repository ppa:webupd8team/java
RUN sudo apt-get update
RUN echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
RUN sudo apt-get -y install oracle-java8-installer
RUN java -version
Multiplesources через Интернет показывают одни и те же или аналогичные вопросы, и более или менее прийти в то же conclusion. Я начинаю свою игру следующим образом:
Я не собираюсь повторять то, что связано выше, это в основном идентичная ситуация. (Изменения файла обнаружены, он показывает компиляцию, хотя веб-страница не отражает изменений.) Кроме того, я проверяю правильный компилятор, декомпилируя сгенерированные файлы .class, он показывает правильный код.
Теперь, когда я говорю волшебные слова: Добавление следующей строки в мой файл build.sbt
PlayKeys.playWatchService := play.sbtplugin.run.PlayWatchService.sbt(pollInterval.value)
Я получаю общую build.sbt из:
name := """cms-work"""
version := "1.0-SNAPSHOT"
retrieveManaged := true
lazy val root = (project in file(".")).enablePlugins(PlayJava)
scalaVersion := "2.11.6"
libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs
)
// Play provides two styles of routers, one expects its actions to be injected, the
// other, legacy style, accesses its actions statically.
routesGenerator := InjectedRoutesGenerator
// Polling for auto-reload, because networked filesystem.
PlayKeys.playWatchService := play.sbtplugin.run.PlayWatchService.sbt(pollInterval.value)
Запуск ./activator
в моем каталог проекта заставляет его повторно оценить мой файл сборки и создать следующее:
/root/cms-work/build.sbt:23: error: value playWatchService is not a member of object play.sbt.Play.autoImport.PlayKeys
PlayKeys.playWatchService := play.sbtplugin.run.PlayWatchService.sbt(pollInterval.value)
^
[error] Type error in expression
As очевидно, решение одного размера подходит для всех уже не применимо. С тех пор я был в тупике. Я не обнаружил абсолютно никакого уведомления о каких-либо изменениях с 2.3.x, что сделало бы эту команду недействительной. Вместо этого я вижу things, в котором упоминаются «работы после 2.3.2», которые я есть.
PS:
Может кто-нибудь объяснить странное поведение Ctrl-D, описанной в конце связанного поста. Я испытываю то же самое, кажется очень странным, учитывая тот факт, что Ctrl-D должен выйти ...