使用Maven的GWT多模块项目



我有一个采用以下方法的多模块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是一个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实例运行?

  • 我该如何在开发模式下运行per-sayxt.pc?(我尝试在xt.pcpom.xml下标记runTarget,但没有成功。我认为冲突在于合并text.webappext.pc

对于第三个问题:制作模块时,请记住,从不同模块提供的资源不是从模块内的文件附加的,而是从它们的jar中附加的。因此,当您在gui应用程序中使用来自另一个模块的代码,并更改该模块内的代码时,您将需要重新编译该模块,因为开发模式将在jar的运行代码和使用开发模式启动的项目的源代码上进行编译。

例如:您有一个名为A的父模块。这个父模块包含两个模块B和C。在C中,您有一些公共类。在B中,您已经实现了带有入口点的整个gui。此外,在模块B的pom中,您在构建部分添加了gwt-maven插件。当您在开发模式下从模块B启动项目时,当您刷新网页时,您在模块B中所做的任何更改都将反映在网页上。但是,如果修改模块C内的任何类,则在重新启动开发模式并重建模块C之后,这些更改将不可见。这是因为刷新网页不会重建依赖模块

然而,我不知道当你在gwt-maven插件的配置标签中指定模块后,从父pom启动dev模式时,dev模式会如何表现。

相关内容

  • 没有找到相关文章

最新更新