27

superDevModeを使用して単純なアプリを実行し、その利点を知りたいだけです。CodeServerは正常に開始されていますが、UIでコンパイルするgwtモジュールがないという不満があります。次の手順に従いました。

  1. 新しいプロジェクトを作成するときに生成されるGWTデフォルトコードから始めました。次に、それをMavenプロジェクトに変換しました。
  2. 次に、gwt.xmlファイルを変更してリンカーを追加しました。これが私の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. codeserver jarを追加し、適切なクラスパスを設定しました。

Codeserverは正常に開始されています。

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

UIを起動すると、次のようになります ここに画像の説明を入力してください

しかし、Dev Mode Onをクリックすると、次のようになります。

ここに画像の説明を入力してください

何が間違っているのかわかりません。私のPOMエントリは次のようになります。

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

私が間違っている場合は私を訂正してください。

4

4 に答える 4

65

更新:v2.6には、superdevmodeのより良いサンプルランチャーがあるようです( http://www.gwtproject.org/release-notes.html#Release_Notes_2_6_0_RC1のsuperdevmodeの下を参照)2.6は、いつでもリリースされます。RC3を使用していますが、問題ないようです。詳細はこちら:


トーマスの記事でSuperDevModeがどのように機能するかについての詳細に感謝しますが、本当に必要なのは、トラブルシューティングを伴うステップバイステップガイドです。

これがステップバイステップです。うまくいかない場所はたくさんあり、SuperDevモードのページはあまり具体的ではありません。うまくいけば、これはそれを明らかにします:

  1. 追加の行を使用してモジュール.gwt.xmlファイルを構成します(これはモジュール定義の下部、つまり直前に配置する必要があります</module>)。
<add-linker name="xsiframe"/>
<set-configuration-property name="devModeRedirectEnabled" value="true"/>
<!-- enable source maps -->
<set-property name="compiler.useSourceMaps" value="true" />
  1. 標準のGWTコンパイルプロセスを実行します-Eclipseではこれは「GWTCompileProject...」です-これはGWTコードをデプロイするときに通常行うことです。間違いなく、これを実行するMavenまたはAntコマンドがあります。

  2. GWTコードを開発するときに通常使用する通常のWebサーバーを起動します。たとえば、通常のDevModeを使用したものです。これをlocalhost:8888と呼びます-通常起動するページはindex.htmlであると想定しているのでhttp://localhost:8888/index.html、GWTアプリを表示します。(おそらく?gwt.codesvr=127.0.0.1:9997通常はそのURLにあります)

  3. SuperDevModeサーバーを起動します(2つの方法については、この回答の下部を参照してください)。これで、2つのWebサーバーが異なるポートで実行されます。したがって、SuperDevModeがで実行されているとしましょうlocalhost:1234。この回答の最後に、SuperDevModeを開始するいくつかの方法を投稿しました。

  4. ブラウザでSuperDevModeサーバーを指定しますhttp://localhost:1234。の指示に従い、2つのショートカットをアドレスバーにコピーします

  5. 次に、ブラウザで通常のWebサーバー(http://localhost:8888/index.htmlURLに追加しない?gwt.codesvr=127.0.0.1:9997でください)を指定します。これは、NotSuperDevMode専用です。(つまり、通常のDevMode)

  6. 手順5でコピーしたショートカットリンク「DevModeOn」をクリックします。コンパイルするモジュールを選択するように求められたら、[コンパイル]ボタンをクリックします。

  7. ソースマップが必要な場合(ChromeスクリプトブラウザでJavaソースコードを参照)、Chromeでオンにする必要があります。私のバージョンのChrome(Ubuntu)では、Chromeコンソールの右下に小さな歯車があります(要素を調べてから、ブラウザーウィンドウの右下を見てください)。それをクリックして、「ソースマップを有効にする」を見つけます。ページをリロードすると、ソースコードが表示されます。


スーパー開発モードを起動する2つの方法:

コマンドラインから

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

EclipseLaucherから

Eclipseで、次の構成で新しいJavaアプリケーションランチャー( Webアプリケーションランチャーではありません!)を作成します。

メインクラス:

com.google.gwt.dev.codeserver.CodeServer

プログラムの引数:

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

-workDirオプションです

VM引数(プロジェクトのサイズによっては必要になる場合があります。クリックした直後にsuperdevmodeの[コンパイル]ボタン(ブラウザ内)が消えて何も起こらない場合は、メモリ不足のためにクラッシュする可能性があります)

-Xmx1024m -Xms512m

クラスパス: gwt-codeserver.jar、gwt-dev.jar、およびgwt-user.jarを起動クラスパスに追加します(これらのjarはGWT SDKインストールディレクトリにあります)。

于 2012-11-07T20:52:12.950 に答える
8

私は少し異なるアプローチを取りました。既存のハロープロジェクトから始めて、スーパー開発モードで動作するように構成しました。

A.helloプロジェクトのwarをビルドしてtomcatにデプロイします。

B.Helloプロジェクトのbuild.xmlにターゲットを追加します。

<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.ant codeserverコマンドプロンプトから を使用してコードサーバーを実行します。

D.ブラウザを起動しhttp://localhost:9876/ 、ブックマークの作成に移動します

E. Chrome開発ツール(F12)を起動し、SourceMapsを有効にします。

F.ブラウザを起動し、に移動しますhttp://localhost:8080/Hello

G.ページが表示されたら、「開発モードオン」ブックマークをクリックします。http://localhost:8080/Hello

H. [コンパイル]ボタンをクリックして、gwtソースコードをソースマップとしてブラウザにロードするようにコードサーバーに指示します。

I. Hurray javaファイルがフェッチされ、Chrome開発コンソールの[ソース]タブに表示されます。

J.Hello.javaを見つけます。行番号をクリックして、デバッグポイント@を設定し Window.alert("Hello, AJAX");ます。

K.HelloWorldで「ClickMe」をクリックします。コードは、ChromeのJavaファイルのデバッグポイントで停止します!!!!!!!!! やあ。

スクリーンショット付きのリファレンス-http: //geekbybit.blogspot.in/2013/03/diy-working-with-gwt-codeserver-tomcat.html

ここに画像の説明を入力してください

于 2013-03-31T14:59:44.847 に答える
4

これがどのように機能するかについての本当に良い説明がここにあります:http: //blog.ltgt.net/how-does-gwts-super-dev-mode-work/

小冊子をブラウザにドラッグする必要があります。次に、通常のようにアプリケーションを起動します。「?gwt.codesvr = 127.0.0.1:9997」の部分を含まないブラウザでアプリを開きます。これで、小冊子を使用してSuperDevModeを開始できます。

お役に立てれば。

于 2012-07-06T11:25:30.010 に答える
0

マルチモジュールMavengwtプロジェクトでは、実行構成にソースの場所(ベースプロジェクトとモジュール)を追加する必要があります。

-src src/main/java/ -src ${workspace_loc:MyNewModule}/src/main/java/ com.foo.MyModule
于 2014-10-28T13:35:14.707 に答える