web-dev-qa-db-ja.com

GWTモジュールはREDUXを(再)コンパイルする必要があるかもしれません

コンパイルモードで実行すると、この恐ろしいGWTモジュール 'mymodule'が(再)コンパイルされたダイアログメッセージである必要があります。

コンパイルモードで実行されているGWTがこのエラーメッセージを受け取ったときに他の人が試すことを提案したもののリストをコンパイルしました。 mavenによって作成されたWARファイルを開きましたが、すべてのファイルは適切な場所にあります。このエラーが発生しない別のGWT Mavenプロジェクトに対してこれを確認しました。ただし、以下の提案はいずれも問題を修正していません。また、これらの2つのプロジェクトの間に欠けている違いを特定することもできませんでした-動作するものと、コンパイルされたモードで実行されないものです。

他に何ができますか?

59
James A Wilson

src/main/webappを「warフォルダー」として使用してDevModeを開始しましたか?または言い換えると、*.nocache.jssrc/main/webappがありますか?その場合、このファイルはgwt-maven-pluginによって呼び出されたGWTコンパイラーによって生成されたファイルを上書きします。

DevModeによって生成された*.nocache.js(誰も存在しない場合、以前のGWTコンパイルによって生成された)には、DevModeを起動するために必要なビットのみが含まれ、そうでなければ上記のエラーで失敗します。

53
Thomas Broyer

<MODULE_NAME>.nocache.jssrc/main/webapp/<MODULE_NAME>というファイルを探し、それを削除/名前変更します。

次に、mvnパッケージを実行します。すべてが「正常」になります。

この問題は、EclipseでDevモードを実行するときに発生する可能性があります。 Eclipseはnocache.jsファイルを生成し、src/main/webappディレクトリの下に配置します。

次に、mvn pacakgeを実行すると、mavenプラグインがデプロイメントnocache.jsを作成して適切な場所に配置しますが、ファイルを戦争にパッケージ化すると、デプロイメントが過剰になりますnocache.js作成された1つのEclipseで-残念!

16
Adam Davies

アプリケーション内の別のページ(つまり、myModule2.html)への静的リンクがある場合、DevModeで同じ問題が見つかりました。 ?gwt.codesvr = 127.0.0.1:9997文字列がなかったため、静的な(既にコンパイルされた)GWTアプリとして解釈されました。ではなく、あなたが言及したエラーコードを投げます。

enter image description here

もちろん、解決策は、ハードコーディングされたリテラルリンクを使用することではなく、GWTにリンクを作成させることです。それが誰かを助けることを願っています。

更新:

これは、標準GWT * .nocache.jsファイルでこのエラーをスローするコードです。

function B() {
    var b = false;
    try {
    var c = Window.location.search;
    return (c.indexOf("gwt.hosted=") != -1 
        || (c.indexOf("gwt.codesvr=") != -1
        || Window.external && Window.external.gwtOnLoad)) 
        && c.indexOf("gwt.hybrid") == -1
    } catch (a) {}
    B = function () {
    return b
    };
    return b
}
// and later, if B() returns false, show recompile error
if (!B()) {
    try {
    alert(Pb);
    return;
    }
  ...
}

したがって、コンパイラメッセージを防ぐために

  • uRLにgwt.hybridがない
  • また、gwt.hosted =はありません
  • またはget.codesvr =
  • またはWindow.external.getOnLoadメソッド

そのため、ポップアップの場合、一部のサーバーコードはDevModeセッションURLをリダイレクトしていましたが、「codesvr =」パラメーターを追加し直さなかったため、警告が表示されました。

5
Joseph Lust

GWTコンパイルはmaven-package-phaseの一部ではないため、通常のmvn gwt:compileに加えてmvn clean install packageを実行する必要があります。これにより、厄介なJavascript-(re)compile-errorが解決されます。

2
Ingo Fischer

ソースをコンパイルしましたか?これは驚くほど非自明なステップです。 Eclipseを使用している場合は、赤いツールボックスアイコンをクリックしてコンパイルできます。

2
Riley Lark

開発モードが正しく構成され、上記のソリューションが機能しませんでした。しかし、以下は問題を解決しました。

複数のステップ:

  1. プロジェクトプロパティの更新->を使用したアセンブリの展開 EclipseでGWT Mavenプロジェクトを展開すると、ターゲット/プロジェクトディレクトリではなくwebappディレクトリが展開されます
  2. mvn cleanパッケージ
  3. mvn gwt:compile
  4. Eclipseで、「GWTコンパイルプロジェクト」をクリックします。-> Advacned->「-war src/main/webapp」引数を削除し、コンパイルをヒットします。

出力は次のようになります-target/project-1.0-SNAPSHOT/ModuleNameへのリンク

...そして、展開は正常に機能します。

0
tj-recess

同様の問題がありました。 mvn clean install私のGWTプロジェクトでwarファイルを取得しました。Tomcatにデプロイすると、同じ「GWTモジュール 'mymodule'を(再)コンパイルする必要があります」ダイアログメッセージが表示されました。また、ここで言及したことはすべて成功しませんでした。

mvn clean install -DskipTests=true私のために仕事をしました。
OR
実行中mvn clean install生成されたテストURLを呼び出さずに(sth。このように:http://<localIp>:53701/mymoduleJUnit.JUnit/junit-standards.html?gwt.codesvr=<localIp>:53697

テスト段階では、最初に作成した*.nocache.jsいくつかの派手な開発モードのURLを使用して、間違ったパッケージを作成します*.nocache.js 最終的には。

0
cbopp

これはここの他のすべての有効な回答にも当てはまります:場合によっては、いずれかを実行した後にハード/キャッシュブラウザの更新(ctrl + F5)を実行する必要がある場合があります。

0
cellepo