gwt maven 插件部署到独立 tomcat 未加载

gwt maven plugin deploy to standalone tomcat not loading

我正在使用最新的 gwt maven 插件 (https://tbroyer.github.io/gwt-maven-plugin/index.html) 来编译一个多模块 GWT 项目并将其部署到 tomcat 9. 我也在使用 intellij 14 作为我的 IDE.它只是一个客户端应用程序,即。没有 server/servlet。当我通过 IDE gwt 插件构建并将输出压缩并部署到 tomcat 时,我的应用程序运行良好。

但是,使用 maven 插件,一切都编译正常,war 的内容对我来说看起来很好。 war 可以正常部署到 tomcat,但是当我尝试在我的浏览器(最新的 chrome 版本)上加载它时,我只看到一个空白页面。

我是 运行 开发工具和 jscript 控制台,没有报告任何错误,网络视图,显示内容下载正常。我在我的 nocache js 文件中设置了断点,并毫无问题地逐步通过它。下面是我的 pom.我很感激任何对此的见解/帮助,因为它已经困扰我好几天了..

<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
    <artifactId>guml-ui</artifactId>
    <groupId>guml-ui</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>dashboard</artifactId>
<!--<packaging>gwt-app</packaging>-->


<dependencies>
    <dependency>
        <groupId>guml-ui</groupId>
        <artifactId>myworkspace</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>guml-ui</groupId>
        <artifactId>project</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>guml-ui</groupId>
        <artifactId>common</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>

<build>
    <resources>
        <resource>
            <directory>src/main/java/au/com/guml/ui/components/dashboard/public</directory>
        </resource>
        <resource>
            <directory>war</directory>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>net.ltgt.gwt.maven</groupId>
            <artifactId>gwt-maven-plugin</artifactId>
            <version>1.0-rc-9</version>
            <extensions>true</extensions>
            <configuration>
                <moduleName>au.com.guml.ui.components.dashboard.Dashboard</moduleName>
                <moduleShortName>Dashboard</moduleShortName>
                <warDir>${basedir}/../gumlui-war/target/gumlui-war-${project.version}</warDir>
                <devmodeWorkDir>${basedir}/../gumlui-war/target/gumlui-war-${project.version}</devmodeWorkDir>
                <webappDirectory>${basedir}/../gumlui-war/target/gumlui-war-${project.version}</webappDirectory>
                <skipModule>true</skipModule>
                <draftCompile>true</draftCompile>
                <startupUrls>Dashboard.html</startupUrls>
            </configuration>
            <executions>
                <execution>
                    <id>compile-module-common</id>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                    <configuration>
                        <moduleName>au.com.guml.ui.components.common.Common</moduleName>
                        <moduleShortName>Common</moduleShortName>
                    </configuration>
                </execution>
                <execution>
                    <id>compile-module-myworkspace</id>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                    <configuration>
                        <moduleName>au.com.guml.ui.components.myworkspace.MyWorkspace</moduleName>
                        <moduleShortName>MyWorkspace</moduleShortName>
                    </configuration>
                </execution>
                <execution>
                    <id>compile-module-project</id>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                    <configuration>
                        <moduleName>au.com.guml.ui.components.project.Project</moduleName>
                        <moduleShortName>Project</moduleShortName>
                    </configuration>
                </execution>
                <execution>
                    <id>compile-module-dashboard</id>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                    <configuration>
                        <moduleName>au.com.guml.ui.components.dashboard.Dashboard</moduleName>
                        <moduleShortName>Dashboard</moduleShortName>
                    </configuration>
                </execution>
            </executions>
        </plugin>

        <!-- copy the host html page -->
        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>3.0.2</version>
            <executions>
                <execution>
                    <id>copy-hosthtml</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${basedir}/../gumlui-war/target/gumlui-war-${project.version}</outputDirectory>
                        <resources>
                            <resource>
                                <directory>war</directory>
                                <filtering>true</filtering>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
                <execution>
                    <id>copy-public</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${basedir}/../gumlui-war/target/gumlui-war-${project.version}/Dashboard</outputDirectory>
                        <resources>
                            <resource>
                                <directory>src/main/java/au/com/guml/ui/components/dashboard/public</directory>
                                <filtering>true</filtering>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>

    </plugins>
</build>

干杯, 马特

对于任何感兴趣的人,我得到了在多模块 gwt 项目上工作的 maven 构建。请参阅以下 pom(仪表板),这是我的应用程序,它继承了其他模块。

<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
    <artifactId>guml-ui</artifactId>
    <groupId>guml-ui</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>dashboard</artifactId>
<!--<packaging>gwt-app</packaging>-->


<dependencies>
    <dependency>
        <groupId>guml-ui</groupId>
        <artifactId>myworkspace</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>guml-ui</groupId>
        <artifactId>project</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>guml-ui</groupId>
        <artifactId>common</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>4.1.0.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator-sources</artifactId>
        <version>4.1.0.Final</version>
        <scope>system</scope>
        <systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/hibernate-validator-4.1.0.Final-sources.jar</systemPath>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.6.1</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.6.1</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.16</version>
    </dependency>
</dependencies>

<build>
    <resources>
        <resource>
            <directory>src/main/java/au/com/guml/ui/components/dashboard/public</directory>
        </resource>
        <resource>
            <directory>src/main/java</directory>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>net.ltgt.gwt.maven</groupId>
            <artifactId>gwt-maven-plugin</artifactId>
            <version>1.0-rc-9</version>
            <extensions>true</extensions>
            <configuration>
                <moduleName>au.com.guml.ui.components.dashboard.Dashboard</moduleName>
                <moduleShortName>Dashboard</moduleShortName>
                <warDir>${basedir}/../gumlui-war/target/gumlui</warDir>
                <devmodeWorkDir>${basedir}/../gumlui-war/target/gumlui</devmodeWorkDir>
                <webappDirectory>${basedir}/../gumlui-war/target/gumlui</webappDirectory>
                <skipModule>true</skipModule>
                <startupUrls>Dashboard.html</startupUrls>
                <!--<style>PRETTY</style>-->
            </configuration>
            <executions>
                <execution>
                    <id>compile-module-common</id>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                    <configuration>
                        <moduleName>au.com.guml.ui.components.common.Common</moduleName>
                        <moduleShortName>Common</moduleShortName>
                    </configuration>
                </execution>
                <execution>
                    <id>compile-module-myworkspace</id>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                    <configuration>
                        <moduleName>au.com.guml.ui.components.myworkspace.MyWorkspace</moduleName>
                        <moduleShortName>MyWorkspace</moduleShortName>
                    </configuration>
                </execution>
                <execution>
                    <id>compile-module-project</id>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                    <configuration>
                        <moduleName>au.com.guml.ui.components.project.Project</moduleName>
                        <moduleShortName>Project</moduleShortName>
                    </configuration>
                </execution>
                <execution>
                    <id>compile-module-dashboard</id>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                    <configuration>
                        <moduleName>au.com.guml.ui.components.dashboard.Dashboard</moduleName>
                        <moduleShortName>Dashboard</moduleShortName>
                    </configuration>
                </execution>
            </executions>
        </plugin>

        <!-- copy the host html page -->
        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>3.0.2</version>
            <executions>
                <execution>
                    <id>copy-public</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${basedir}/../gumlui-war/target/gumlui/Dashboard</outputDirectory>
                        <resources>
                            <resource>
                                <directory>src/main/java/au/com/guml/ui/components/dashboard/public</directory>
                                <filtering>true</filtering>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>


    </plugins>
</build>
</project>

我必须在此 pom 和我继承的项目中包含构建资源条目以手动包含 public 目录,不知道为什么,这似乎是插件的一个怪癖。