web-dev-qa-db-fra.com

Mode Super Dev dans GWT

Je suis nouveau sur gwt. Je ne sais pas comment démarrer mode Super Dev. J'ai besoin de l'explication détaillée étape par étape.

J'ai essayé de modifier le fichier gwt.xml en ajoutant

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

mais je ne peux pas avoir l'idée à ce sujet.

29
nmkyuppie

Suivez ces étapes, vous trouverez certainement la solution.

  1. Téléchargez le GWT 2.5 RC2, et placez-le quelque part ... Je l'ai mis dans mon répertoire Eclipse/plugins. lien

  2. Dans Eclipse, ajoutez GWT 2.5 à l'écran Project -> Properties -> Google -> Web Toolkit -> Configure SDKs Et sélectionnez la version 2.5 que vous avez ajoutée au répertoire à l'étape ci-dessus.

  3. Faites un clic droit sur le projet dans Eclipse, accédez à sa fenêtre Exécuter les configurations et créez une nouvelle "Application Java", nommez-la quelque chose comme "Mode Super Dev GWT".

  4. Dans la fenêtre Exécuter les configurations, procédez comme suit:

    1. Définissez le projet en fonction du nom de votre projet et saisissez la classe principale sous la forme com.google.gwt.dev.codeserver.CodeServer

    2. Dans le Classpath tab, Cliquez sur user Entries, Puis sur Add External JARs, Accédez au répertoire GWT 2.5 et recherchez le gwt-codeserver.jar , puis cliquez sur "Ouvrir" (et sur d'autres bibliothèques externes).

    3. Dans l'onglet Arguments, ajoutez -src src/ *SOURCE PATH OF YOUR PROJECT* Aux arguments du programme et ajoutez -Xmx1024m Facultatif à VM arguments.

    4. Cliquez sur Appliquer, puis continuez et exécutez le projet.

  5. Après cela, vous obtiendrez une URL comme, localhost: 9876/

  6. Allez à cette URL et marque-page, Dev Mode ON Et Dev MOde Off Puis exécutez votre code, supprimez le suffixe gwt.codesvr = 127.00.1: 9997 dans l'URL. Maintenant, cliquez sur Dev Mode ON ...

J'espère que vous obtenez la solution ...

16
Stuart

MISE À JOUR: à partir de GWT 2.7, DevMode utilisera en fait le mode Super Dev automatiquement par défaut, il vous suffit donc de lancer DevMode comme vous l'avez fait précédemment, et le l'application sera (re) compilée automatiquement lors du (re) chargement de la page.
Une différence est qu'un .nocache.js Spécial est généré, vous devez donc vous assurer que ce fichier spécifique est chargé par le navigateur; pour déboguer un serveur distant (comme vous pouviez le faire auparavant avec DevMode fonctionnant avec -noserver), vous devrez cependant utiliser les bookmarklets comme décrit ci-dessous.

Pour fonctionner en mode Super Dev, vous devez passer par 2 étapes préparatoires:

  1. Le mode Super Dev fonctionne uniquement avec l'éditeur de liens xsiframe, alors assurez-vous que vous avez également la ligne suivante dans votre .gwt.xml:

    <add-linker name="xsiframe" />
    

    Cet éditeur de liens est sûr pour une utilisation en production (Google l'utilise partout, légèrement personnalisé), alors n'hésitez pas à l'activer pour tous vos projets (il combine le meilleur de l'éditeur de liens std - celui par défaut - et le xs linker, sans leurs inconvénients).

    Remarque: ce lieur sera la valeur par défaut en 2.7

    Si vous utilisez une version de GWT avant 2.6.0, vous devrez également activer le mode Super Dev dans votre .gwt.xml:

    <set-configuration-property name="devModeRedirectEnabled" value="true" />
    

    Sinon, si vous avez l'intention d'utiliser le mode Super Dev à partir d'une URL différente de 127.0.0.1 Ou localhost, vous devrez alors mettre l'hôte en liste blanche. Cela se fait à l'aide d'une expression rationnelle, par exemple:

    <set-configuration-property name="devModeUrlWhitelistRegexp" value="http://(mymachinename|192\.168\.5\.151)(:\d+)?/.*" />
    

    Voir https://stackoverflow.com/a/21938574/116472

  2. compilez et déployez votre application sur un serveur Web près de chez vous (si vous avez utilisé un fichier .gwt.xml spécifique au mode Super Dev, assurez-vous de compiler ce module: le lieur xsiframe et devModeRedirectEnabled la propriété est nécessaire pour cette étape de compilation!)

    Si vous utilisez GWT-RPC, définissez la propriété système gwt.codeserver.port Sur le port sur lequel vous exécuterez le mode Super Dev (par défaut 9876) Afin que votre serveur puisse télécharger les politiques de sérialisation RPC directement depuis le Super Mode Dev.
    Si vous les exécutez sur différentes machines, vous devrez remplacer getCodeServerPolicyUrl dans tous vos RemoteServiceServlets. Tenez compte des implications de sécurité, comme indiqué dans le javadoc

Une fois cela fait, vous pouvez démarrer une session en mode Super Dev:

  1. Lancez com.google.gwt.dev.codeserver.CodeServer Avec le même chemin de classe que celui avec lequel vous lanceriez DevMode (c'est-à-dire gwt-user.jar, gwt-dev.jar Et toutes vos dépendances côté client: par exemple GXT, GIN + Guice, GWTEventBinder, etc.) mais en ajoutant gwt-codeserver.jar; et en passant le nom de votre module comme argument.

    Il commencera par compiler votre module pour vérifier qu'il peut effectivement être compilé; vous pouvez ignorer cette étape en passant -noprecompile comme argument.

    Si vous n'avez jamais exécuté le mode Super Dev, accédez à http://localhost:9876 Et ajoutez les liens Dev Mode On et Dev Mode Off à vos signets (faites glisser/déposez-les dans votre barre de favoris).

    Remarque: si vous utilisez Maven, vous devriez pouvoir utiliser mvn gwt:run-codeserver (Remarque: il y a un bogue dans les versions du plugin jusqu'à 2.6.0 où vous devez réellement exécuter mvn process-classes gwt:run-codeserver; Ceci est fixé en 2.6.1).

  2. Ouvrez votre application dans votre navigateur, puis appuyez sur le bookmarklet Dev Mode On. Cliquez sur le bouton Compiler dans la fenêtre qui s'ouvre. Il devrait actualiser la page et charger le JS à partir du CodeServer plutôt qu'à partir de votre serveur. Les outils de développement de votre navigateur devraient également charger les SourceMaps afin que vous puissiez voir et déboguer (étape par étape) votre code Java.

  3. Lorsque vous souhaitez tester les modifications que vous avez apportées à votre code, appuyez à nouveau sur le bookmarklet Dev Mode On. Contrairement à DevMode, l'actualisation de la page ne lui fera pas exécuter le nouveau code; le code doit d'abord être recompilé, et cela se fait en cliquant sur le bouton Compiler après le Mode Dev activé bookmarklet (remarque: vous pouvez également directement Compile bouton pour enregistrer un clic, mais notez qu'il est lié à votre module, vous aurez donc besoin de plusieurs signets si vous travaillez sur plusieurs modules).

  4. Lorsque vous avez terminé, appuyez sur Dev Mode Off pour vous assurer de revenir à mode production, puis arrêtez le processus CodeServer (CtrlC dans la console devrait fonctionner).

Documentation officielle sur http://www.gwtproject.org/articles/superdevmode.html
Voir aussi http://blog.ltgt.net/how-does-gwts-super-dev-mode-work/ pour plus d'informations sur le fonctionnement réel du mode Super Dev.

60
Thomas Broyer

J'ai écrit une simple directive étape par étape pour le débogage de projets Hello World avec le mode super-dev Ici .

Après avoir lu le guide étape par étape avec des captures d'écran, vous ne pouvez pas le manquer.

enter image description here

En outre, vous pouvez lire sur la technologie -

GWT SuperDevMode - Ray Cromwell Post et Guide de développement GWT

Cartes source - GWT et Sourcemaps et HTML5 Sourcemaps

7
appbootup
3
Ronan Quillevere