OSX Play Framework Auto-Reload

Ich habe jetzt stundenlang im Internet gestöbert, es gibt viele "hilfreiche" Ratschläge ... die nichts als Probleme verursachen.

Das bin ich, fast genau:

Play Framework wird automatisch in den Docker-Container geladen

Ich verwende die neueste (ich glaube, ich weiß nicht, wie ich sie überprüfen soll, habe sie aber vor <einer Woche heruntergeladen) Version des Spiels! Framework in einem Ubuntu Docker-Container mit Java 8, der mit der folgenden Docker-Datei erstellt wurde:

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

Mehrer sources über das Internet zeigen die gleichen oder ähnliche Probleme, und kommen mehr oder weniger zum gleichenFazi. Ich starte meine Spielanwendung wie folgt:

Ich werde nicht wiederholen, was oben verlinkt ist, es ist im Grunde eine identische Situation. (Die Dateiänderungen werden erkannt, es wird eine Kompilierung angezeigt, auf der Webseite werden jedoch keine Änderungen angezeigt.) Außerdem überprüfe ich eine korrekte Kompilierung, indem ich die generierten .class-Dateien dekompiliere. Es wird der richtige Code angezeigt.

Nun, wenn ich die magischen Worte sage: Füge die folgende Zeile zu meiner build.sbt-Datei hinzu

PlayKeys.playWatchService := play.sbtplugin.run.PlayWatchService.sbt(pollInterval.value)

Ich erhalte eine allgemeine build.sbt von:

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)

Laufen./activator in meinem Projektverzeichnis veranlasst es, meine Build-Datei neu zu bewerten und Folgendes zu generieren:

/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

Als offensichtlich, ist die Einheitslösung nicht mehr anwendbar. Ich bin seitdem ratlos. Ich habe absolut keine Änderungen seit 2.3.x festgestellt, die diesen Befehl ungültig machen würden. Stattdessen sehe ich things Erwähnung "Funktioniert nach 2.3.2", was ich bin.

PS:

Kann jemand das ungerade Verhalten von Strg-D erklären, das am Ende des verlinkten Beitrags beschrieben wird. Ich erlebe das selbe, erscheint sehr seltsam angesichts der Tatsache, dass Strg-D beendet werden soll ...

Antworten auf die Frage(4)

Ihre Antwort auf die Frage