2013-08-20 10 views
28

Ich bin neu bei gwt. Ich kann nicht starten Super Dev-Modus. Ich brauche die detaillierte Erklärung Schritt für Schritt.Super Dev-Modus in GWT

Ich habe Bearbeitung gwt.xml Datei versucht, durch

<add-linker name="xsiframe"/> 
    <set-configuration-property name="devModeRedirectEnabled" value="true"/> 
    <set-property name="compiler.useSourceMaps" value="true" /> 

Zugabe, aber ich kann die Idee dazu bekommen.

Antwort

16

Befolgen Sie diese Schritte, Sie werde auf jeden Fall Finde die Lösung.

  1. Laden Sie das GWT 2.5 RC2 herunter, und legen Sie es irgendwo ... Ich steckte es in meine Eclipse/Plugins-Verzeichnis. link

  2. Fügen Sie in Eclipse GWT 2.5 zum Bildschirm Project -> Properties -> Google -> Web Toolkit -> Configure SDKs hinzu, und wählen Sie die 2.5-Version aus, die Sie dem Verzeichnis im obigen Schritt hinzugefügt haben.

  3. Klicken Sie mit der rechten Maustaste auf das Projekt in Eclipse, gehen Sie zu seinem Fenster Run Configurations, und erstellen Sie eine neue "Java Application", nennen Sie es etwa "GWT Super Dev Mode".

  4. Während im Run-Konfigurationen Fenster, gehen Sie wie folgt vor:

    1. Stellen Sie das Projekt auf der Grundlage Ihrer Projektnamen, und geben Sie in der Hauptklasse als com.google.gwt.dev.codeserver. CodeServer

    2. auf der Classpath tab, klicken user Entries, dann Add External JARs klicken, navigieren Sie zu dem GWT 2.5-Verzeichnis und finden Sie das gwt-codeserver.jar, und klicken Sie auf "Öffnen" (und andere externe Bibliotheken).

    3. Fügen Sie auf der Registerkarte Argumente -src src/ *SOURCE PATH OF YOUR PROJECT* zu Program-Argumente hinzu, und fügen Sie VM-Argumente optional -Xmx1024m hinzu.

    4. Klicken Sie auf Anwenden, dann fahren Sie fort und führen Sie das Projekt aus.

  5. Danach Sie eine URL erhalten wie, localhost: 9876/

  6. Goto, dass die URL und Lesezeichen, Dev Mode ON und Dev MOde Off dann Code ausführen, entfernen Sie das Suffix gwt.codesvr = 127.00.1: 9997 in der URL. Jetzt Dev Mode ON klicken ...

Hoffe, dass Sie die Lösung bekommen ...

+0

Warum bekomme ich "Arbeitsverzeichnis existiert nicht"? – EMM

+0

ich Verbrauch: mindestens ein Modul muss –

+1

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. –

59

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:

  1. 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

  2. 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:

  1. 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).

  2. Ö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).

  3. 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).

  4. 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.

+0

Wird es eine Debugging-Unterstützung in Eclipse oder IntelliJ sein? (Ich weiß, es könnte wie ein Orakel fragen) –

+0

Re die Warnung in Schritt # 1, wie kann ich zwei * .gwt.xml Dateien behalten und sie für Super Dev Mode vs Produktion mit Maven wechseln? – Thad

+1

@Thad: Es ist nicht "The Maven Way ™", aber Sie können Profile verwenden; https://github.com/tbroyer/gwt-maven-archetypes/blob/598bed4f16a52d97b21a5f0fa9a3ce65650903a4/modular-webapp/src/test/resources/projects/basic-webapp/reference/basic-webapp-client/pom.xml für eine Beispiel. Oder Sie können einfach eine Eigenschaft verwenden und ihren Wert über die Befehlszeile überschreiben. –

7

Ich schrieb eine einfache Schritt für Schritt Anleitung für Hallo Welt Projekt Debugging mit Super-Dev-Modus Here.

Nach dem Lesen der Schritt für Schritt Anleitung mit Screenshots können Sie es nicht verpassen.

enter image description here

Auch können Sie auf der Technologie nachlesen -

GWT SuperDevMode - Ray Cromwell Post und GWT Dev Guide

SourceMaps - GWT and Sourcemaps und HTML5 Sourcemaps

+0

Wenn der Code aufhört An einem Haltepunkt kann ich nur Javascript sehen. Ist es möglich, den Java-Code zu debuggen (eine Uhr für eine Java-Variable hinzufügen, bevor sie in Javascript übersetzt wird)? – kirilv

-2

helfen jetzt Es ist super einfach.

Check this

und dann diese jar zu Ihrem Classpath hinzufügen

als here erklärt