UPDATE: mit GWT Start 2.7 wird DevMode tatsächlich Super-Dev-Modus automatisch als Standard verwenden, so dass Sie nur DevMode zu starten haben, wie Sie vorher getan hat, und die App wird (neu) kompiliert automatisch auf Seite sein (neu laden.
Ein Unterschied ist, dass eine spezielle .nocache.js
generiert wird, so dass Sie sicherstellen müssen, dass diese spezifische Datei vom Browser geladen wird; Um einen entfernten Server zu debuggen (wie Sie es vorher mit DevMode unter -noserver
machen konnten), müssen Sie die Bookmarklets wie unten beschrieben verwenden.
in Super Dev-Modus ausführen zu können, müssen Sie durch zwei vorbereitende Schritte gehen:
Super-Dev-Modus nur mit dem xsiframe
Linker arbeitet, so stellen Sie sicher, dass Sie die folgende Zeile in Ihrem .gwt.xml
zu haben:
<add-linker name="xsiframe" />
das Linker ist sicher für den produktiven Einsatz (Google nutzt es überall, leicht angepasst), so fühlen sich frei, um es einzuschalten für alle Ihre Projekte (es kombiniert das beste aus der std
Linker -der Standard ein- und t er xs
Linker, ohne ihre Schattenseiten).
Hinweis: dass Linker wird der Standard in 2.7
sein, wenn Sie eine Version von GWT vor 2.6.0 verwenden, werden Sie müssen auch Super-Dev-Modus in Ihrem .gwt.xml
aktivieren:
<set-configuration-property name="devModeRedirectEnabled" value="true" />
Wenn Sie den Super Dev-Modus von einer anderen URL als 127.0.0.1
oder localhost
verwenden möchten, müssen Sie den Host auf die weiße Liste setzen. Dies geschieht ein regexp, zB:
<set-configuration-property name="devModeUrlWhitelistRegexp" value="http://(mymachinename|192\.168\.5\.151)(:\d+)?/.*" />
Siehe https://stackoverflow.com/a/21938574/116472
Kompilierung und Bereitstellung Ihrer App auf einem Web-Server in Ihrer Nähe (wenn Sie eine .gwt.xml
Datei spezifisch für Super-Dev-Modus verwendet wird, stellen Sie sicher, kompilieren, dass ein Modul: der xsiframe
Linker und devModeRedirectEnabled
Eigenschaft für diese Kompilation Schritt erforderlich sind)
Wenn Sie GWT-RPC verwenden, stellen Sie die Systemeigenschaft gwt.codeserver.port
zum Hafen Sie super-Dev-Modus ausgeführt werden auf (Standard: 9876
) so deine se rver kann RPC-Serialisierungsrichtlinien direkt aus dem Super Dev-Modus herunterladen.
Wenn Sie sie auf verschiedenen Computern ausführen, müssen Sie getCodeServerPolicyUrl
in allen Ihren RemoteServiceServlet
s überschreiben.Betrachten wir jedoch die Auswirkungen auf die Sicherheit, wie in the javadoc
bemerkt Sobald das erledigt ist Sie eine Super-Dev-Modus-Sitzung starten kann:
Einführung com.google.gwt.dev.codeserver.CodeServer
mit dem gleichen Classpath, die Sie DevMode starten würde mit (dh gwt-user.jar
, gwt-dev.jar
und alle Ihre clientseitigen Abhängigkeiten: zB GXT, GIN + Guice, GWTEventBinder, etc.), aber hinzufügen gwt-codeserver.jar
; und übergeben Sie den Namen Ihres Moduls als Argument.
Es beginnt mit der Kompilierung Ihres Moduls, um zu überprüfen, ob es tatsächlich kompiliert werden kann; Sie können diesen Schritt überspringen, indem Sie -noprecompile
als Argument übergeben.
Wenn Sie noch nie Super-Dev-Modus lief, gehen Sie zu http://localhost:9876
und fügen Sie den Dev Mode On und Dev Mode Off Links zu Ihren Lesezeichen (Drag/Drop-Bar zu Ihren Lesezeichen).
Hinweis: Wenn Sie Maven verwenden, sollten Sie in der Lage sein mvn gwt:run-codeserver
(Anmerkung zu verwenden: Es gibt einen Fehler in den Versionen des Plugins bis 2.6.0, wo man tatsächlich haben mvn process-classes gwt:run-codeserver
zu laufen, das in 2.6.1 festgelegt ist).
Öffnen Sie Ihre App in Ihrem Browser, dann drücken Sie die Dev Mode On Bookmarklet. Klicken Sie auf die Compile Schaltfläche in dem Popup, das geöffnet wird. Es sollte die Seite aktualisieren und den JS von der CodeServer
statt von Ihrem Server laden. Die Entwicklungswerkzeuge Ihres Browsers sollten auch die SourceMaps laden, damit Sie Ihren Java-Code sehen und debuggen können (Schritt für Schritt).
Wenn Sie Änderungen testen möchten, die Sie an Ihrem Code vorgenommen haben, drücken Sie erneut die Dev Mode On Bookmarklet. Im Gegensatz zu DevMode wird beim Aktualisieren der Seite nicht der neue Code ausgeführt. der Code muss zuerst neu kompiliert werden, und dies geschieht, wenn die Compile Taste nach dem Dev-Modus, klicken Sie auf Bookmarklet (Hinweis: Sie können auch direkt ein Lesezeichen auf die Compile Schaltfläche, um einen Klick zu speichern, beachten Sie aber, dass es gebunden zu Ihrem Modul, so dass Sie mehrere Lesezeichen benötigen, wenn Sie an mehreren Modulen arbeiten).
Wenn Sie fertig sind, drücken Sie Dev Mode Off sicher, dass Sie wechseln zurück zu Produktionsmodus, dann Abschaltung der CodeServer
Prozess (sollte CtrlC in der Konsole arbeiten) zu machen.
Offizielle Dokumentation bei http://www.gwtproject.org/articles/superdevmode.html
Siehe auch http://blog.ltgt.net/how-does-gwts-super-dev-mode-work/ für weitere Informationen darüber, wie Super-Dev-Modus tatsächlich funktioniert.
Warum bekomme ich "Arbeitsverzeichnis existiert nicht"? – EMM
ich Verbrauch: mindestens ein Modul muss –
geliefert wird ich folgende Fehler behoben: : , indem ein Argument an die CodeServer, die das vollständig qualifizierte Paket hatten „Verwendung mindestens ein Modul zugeführt werden muss“ es war unter. z.B. com.somepackage.testgwt.TestGWT wobei TestGWT eine Referenz auf meine TestGWT.gwt.xml-Datei ist. –