web-dev-qa-db-fra.com

Premiers pas avec le SuperDevMode

Je veux juste exécuter une application simple en utilisant superDevMode pour connaître ses avantages. Le CodeServer démarre avec succès, mais il se plaint qu'il n'y a pas de modules gwt à compiler dans l'interface utilisateur. J'ai suivi les étapes suivantes.

  1. J'ai commencé avec le code par défaut GWT qui sera généré lors de la création du nouveau projet. Je l'ai ensuite converti en projet Maven.
  2. J'ai ensuite modifié mon fichier gwt.xml pour ajouter l'éditeur de liens. Voici la copie de mon gwt.xml

    <module rename-to='superdevmode'>
    <inherits name='com.google.gwt.user.User' />
    <inherits name='com.google.gwt.user.theme.clean.Clean' />
    <entry-point class='superDevMode.client.SuperDevMode' />
    <add-linker name="xsiframe" />
    <set-configuration-property name="devModeRedirectEnabled"
    value="true" />
    </module>
    
  3. J'ai ajouté le bocal du serveur de codes et défini le chemin de classe approprié.

Le serveur de codes démarre correctement.

   The code server is ready.
   Next, visit: http://localhost:9876/

Lorsque je lance l'interface utilisateur, j'obtiens ce qui suit enter image description here

Mais quand je clique sur Dev Mode On, j'obtiens ce qui suit

enter image description here

Je ne sais pas ce que je fais mal. Mon entrée POM ressemble à ceci.

              <project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>superDevMode</groupId>
<artifactId>superDevMode</artifactId>
<version>0.0.1-SNAPSHOT</version>
             </project>

Corrigez-moi si je me trompe.

27
Abhijith Nagaraja

Mise à jour : la v2.6 semble avoir un meilleur exemple de lanceur pour superdevmode (voir sous superdevmode sur http: //www.gwtproject .org/release-notes.html # Release_Notes_2_6_0_RC1 ) 2.6 sortira tous les jours maintenant. J'utilise RC3 et ça semble bien. Plus ici:


Bien que j'apprécie les détails sur comment SuperDevMode fonctionne dans l'article de Thomas, ce qui est vraiment nécessaire est un guide étape par étape avec quelques problèmes.

Voici une étape par étape. Il y a tellement d'endroits à se tromper et la page du mode SuperDev n'est pas très spécifique. Espérons que cela indique clairement:

  1. Configurez votre fichier .gwt.xml de module avec les lignes supplémentaires (vous devez le placer au bas de la définition de votre module, c'est-à-dire juste avant </module>):
<add-linker name="xsiframe"/>
<set-configuration-property name="devModeRedirectEnabled" value="true"/>
<!-- enable source maps -->
<set-property name="compiler.useSourceMaps" value="true" />
  1. Exécutez le processus de compilation GWT standard - dans Eclipse, c'est "GWT Compile Project ..." - c'est ce que vous faites généralement lorsque vous déployez du code GWT. Vous disposez sans aucun doute d'une commande maven ou ant qui le fait également.

  2. Démarrez un serveur Web normal que vous utiliseriez normalement lors du développement de votre code GWT. Par exemple, celui avec lequel vous avez utilisé le DevMode normal. J'appellerai celui-ci localhost: 8888 - Je vais supposer que la page que vous lanceriez normalement est index.html, donc http://localhost:8888/index.html montre votre application GWT. (vous avez probablement ?gwt.codesvr=127.0.0.1:9997 dans cette URL normalement)

  3. Démarrez le serveur SuperDevMode (voir le bas de cette réponse pour deux méthodes). Vous avez maintenant deux serveurs Web en cours d'exécution - sur des ports différents. Donc, disons que SuperDevMode fonctionne sur localhost:1234. Au bas de cette réponse, j'ai publié quelques façons de démarrer SuperDevMode.

  4. Pointez votre navigateur vers le serveur SuperDevMode, donc http://localhost:1234. Suivez les instructions et copiez les deux raccourcis dans votre barre d'adresse

  5. Maintenant, pointez votre navigateur vers le serveur Web standard, http://localhost:8888/index.html - ne pas ajouter ?gwt.codesvr=127.0.0.1:9997 à l'URL - uniquement pour NotSuper DevMode. (c.-à-d. DevMode normal)

  6. Cliquez sur le lien de raccourci "DevMode On" que vous avez copié à l'étape 5. Il devrait vous demander de choisir un module à compiler, cliquez sur le bouton Compiler.

  7. Si vous voulez des sourcemaps (voir votre Java dans le navigateur de script Chrome), vous devez l'activer dans Chrome. Dans ma version de Chrome (Ubuntu) il y a un petit équipement en bas à droite de la console Chrome (Inspectez l'élément, puis regardez en bas à droite de la fenêtre du navigateur). Cliquez dessus et recherchez "Activer les cartes sources". Rechargez la page et elle devrait maintenant vous montrer les codes source.


Deux façons de lancer le mode super dev:

Depuis la ligne de commande

Java -classpath $GWT_HOME/gwt-codeserver.jar:$GWT_HOME/gwt-dev.jar:$GWT_HOME/gwt-user.jar:app:./lib/*  com.google.gwt.dev.codeserver.CodeServer \
  -bindAddress 0.0.0.0 -port 1234 -src src -workDir work com.foo.MyModule

Depuis un lanceur Eclipse

Dans Eclipse, créez un nouveau Application Java Lanceur (( pas un lanceur d'application Web!) Avec la configuration suivante:

Classe principale:

com.google.gwt.dev.codeserver.CodeServer

Arguments du programme:

-src src -workDir ${workspace_loc:MyProject}/codeserver -port 1234 com.foo.MyModule

-workDir est facultatif

Arguments VM (Ceux-ci peuvent être nécessaires en fonction de la taille de votre projet. Si le bouton "Compiler" du superdevmode (dans le navigateur) disparaît immédiatement après avoir cliqué sur et rien ne semble se produire, il se peut que ça plante à cause d'une mémoire insuffisante)

-Xmx1024m -Xms512m

Chemin de classe: ajoutez gwt-codeserver.jar, gwt-dev.jar et gwt-user.jar au chemin de classe de lancement (ces pots se trouvent dans le GWT Répertoire d'installation du SDK).

64
Tom Carchrae

J'ai adopté une approche légèrement différente. J'ai commencé avec l'existant projet Hello , puis je l'ai configuré pour fonctionner en mode Super Dev.

A. Construisez et déployez war pour le projet hello dans Tomcat.

B. Ajoutez une cible au build.xml du projet Hello.

<target name="codeserver" depends="javac" description="Run Code Server mode">
    <Java failonerror="true" fork="true" classname="com.google.gwt.dev.codeserver.CodeServer">
        <classpath>
            <pathelement location="src"/>
            <path refid="project.class.path"/>
            <pathelement location="../../gwt-codeserver.jar" />
            <pathelement location="../../validation-api-1.0.0.GA.jar" />
            <pathelement location="../../validation-api-1.0.0.GA-sources.jar" />
        </classpath>
        <jvmarg value="-Xmx1024M"/>
        <arg value="-bindAddress"/>
        <arg value="0.0.0.0"/>
        <arg line="-port"/>
        <arg value="9876"/>
        <arg value="-workDir"/>
        <arg value="workDir"/>
        <arg line="-src"/>
        <arg value="src"/>
        <arg value="com.google.gwt.sample.hello.Hello"/>
    </Java>
</target>

C. Exécutez le serveur de code à l'aide de ant codeserver À partir de l'invite de commande.

D. Lancez le navigateur et accédez à http://localhost:9876/ Créez les signets

E. Lancez Chrome Dev Tools (F12) et Enable SourceMaps.

F. Lancez le navigateur et accédez à http://localhost:8080/Hello

G. Cliquez sur le signet "Dev Mode ON" lorsque vous êtes dans la page http://localhost:8080/Hello

H. Cliquez sur le bouton "Compiler" pour demander au serveur de code de charger le code source gwt dans le navigateur en tant que cartes source.

I. Vive les fichiers Java sont récupérés et peuvent être vus dans la source onglet de la console de développement Chrome.

J. Trouvez le Hello.Java. Cliquez sur le numéro de ligne pour définir le point de débogage @ Window.alert("Hello, AJAX");.

K. Cliquez sur "Click Me" dans le Hello World. Le code s'arrête à votre point de débogage dans le fichier Java dans Chrome !!!!!!!! Hourra.

Référence avec captures d'écran - http://geekbybit.blogspot.in/2013/03/diy-working-with-gwt-codeserver-Tomcat.html

enter image description here

8
appbootup

il y a une très bonne explication sur la façon dont cela fonctionne ici: http://blog.ltgt.net/how-does-gwts-super-dev-mode-work/

vous devez faire glisser les livrets dans votre navigateur. Ensuite, démarrez votre application comme d'habitude. Ouvrez votre application dans le navigateur sans la partie "? Gwt.codesvr = 127.0.0.1: 9997". Vous pouvez maintenant utiliser les livrets pour démarrer le SuperDevMode.

J'espère que cela t'aides.

4
Arne

Avec le projet maven gwt multi-module, vous devez ajouter des emplacements de sources (projet de base et module) dans Exécuter la configuration:

-src src/main/Java/ -src ${workspace_loc:MyNewModule}/src/main/Java/ com.foo.MyModule
0
paralen