1

次のアプローチのマルチモジュール GWT プロジェクトがありますが、開発モードでの実行に問題があります。

POM ファイルの構造は次のとおりです。

親POM

<project>
    <groupId>com.mycmp</groupId>
    <artifactId>com.mycmp.xt</artifactId>
    <version>1.0.0</version>
    <packaging>pom</packaging>
    <modules>
        <module>../com.mycmp.xt.dm</module>
        <module>../com.mycmp.xt.pc</module>
        <module>../com.mycmp.xt.re</module>
        <module>../com.mycmp.xt.rev</module>
        <module>../com.mycmp.xt.webapp</module>
        <module>../com.mycmp.xt.services</module>
    </modules>
    <dependencies>
    </dependencies>
    <build>
        <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>gwt-maven-plugin</artifactId>
                <version>2.5.1</version>
        </plugin>
    </build>
</project>

モジュールから、

  • xt.dmは共有 GWT モジュールなので、JAR パッケージとして持っています。
  • xt.pcは 1 つの GUI GWT モジュールです (GUI コードのみ、すべての RPC コードは Web アプリ モジュール内にあります)。
  • xt.reは別の GUI GWT モジュール ( xt.pcと同じ)
  • xt.revは別の GUI GWT モジュール ( xt.revと同じ)
  • xt.servicesは、サーバー側のサービス レイヤー (JAR パッケージ) です。
  • xt.webappは、Web アプリ ( web.xmlappcontext.xmlなどがある場所) (WAR パッケージ) です。

次の質問について考えています。

  • これは正しいアプローチですか?

  • これをすべてパッケージ化して、単一の Tomcat インスタンスから実行するにはどうすればよいでしょうか?

  • xt.pcを開発モードで実行するにはどうすればよいですか? ( xt.pc pom.xmlrunTargetの下にマークを付けようとしましたが、うまくいきませんでした。競合はxt.webappxt.pcのマージにあると思います(両方とも GWT コードを持っています)。

4

1 に答える 1

1

3 番目の質問: モジュールを作成するときは、さまざまなモジュールから提供するリソースは、モジュール内のファイルからではなく、それらの jar から添付されることに注意してください。そのため、別のモジュールの gui アプリケーションでコードを使用し、そのモジュール内のコードを変更する場合は、そのモジュールを再コンパイルする必要があります。dev モードは、jar の実行コードと、dev を使用して開始したプロジェクトのソース コードでコンパイルされるためです。モード。

たとえば、A という名前の親モジュールがあります。この親モジュールには、2 つのモジュール B と C が含まれています。C には、いくつかの共通クラスがあります。B では、エントリ ポイントを使用して GUI 全体を実装しました。また、モジュール B の pom では、ビルド セクションに gwt-maven-plugin を追加しました。Dev モードでモジュール B からプロジェクトを開始すると、Web ページを更新すると、B モジュール内で行った変更が Web ページに反映されます。ただし、モジュール C 内のクラスを変更した場合、これらの変更は、開発モードを再起動してモジュール Cを再構築するまで表示されません。これは、Web ページを更新しても、依存関係にあるモジュールが再構築されないためです。

ただし、gwt-maven-plugin の構成タグでモジュールを指定した後、親 pom から起動した場合に dev モードがどのように動作するかはわかりません。

于 2013-06-25T13:51:43.303 に答える