GWT Maven托管模式

时间:2012-06-27 08:36:07

标签: gwt maven

经过一些尝试后,我无法使托管模式与maven一起使用。我的pom.xml如下,我正在使用标准的maven结构:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>gwt-maven-plugin</artifactId>
            <version>2.4.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                        <goal>i18n</goal>
                        <goal>generateAsync</goal>
                    </goals>
                </execution>
            </executions>

            <configuration>
                <draftCompile>true</draftCompile>
                <strict>true</strict>
                <inplace>false</inplace>
                <runTarget>project.html</runTarget>
                <style>${gwt.style}</style>
                <i18nMessagesBundle>com.domain.client.i18n.Messages</i18nMessagesBundle>
                <i18nConstantsBundle>comdomain.client.properties.ClientProperties</i18nConstantsBundle>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1.1</version>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>exploded</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

以下是我今天在演示文稿中使用的POM,如果您想比较它们,则可以使用:https://github.com/checketts/gwt-spring-demo/blob/master/pom.xml

答案 1 :(得分:2)

我注意到构建中有两个缺少标记 <outputDirectory> ,而gwt-maven-plugin配置下有 <module>

同时参考 - http://code.google.com/p/google-web-toolkit/source/browse/trunk/samples/dynatablerf/pom.xml

 <build>
    <!-- Generate compiled stuff in the folder used for development mode -->
    <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory>

    <plugins>

      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
        <dependencies>
          <!-- Need to run the RF Validation tool. This works on both the command-line
               and in Eclipse, provided that m2e-apt is installed. -->
          <dependency>
            <groupId>com.google.web.bindery</groupId>
            <artifactId>requestfactory-apt</artifactId>
            <version>${gwtVersion}</version>
          </dependency>
        </dependencies>
      </plugin>

      <!-- GWT Maven Plugin-->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>gwt-maven-plugin</artifactId>        
        <version>2.5.0</version>
        <dependencies>
          <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-user</artifactId>
            <version>${gwtVersion}</version>
          </dependency>
          <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-dev</artifactId>
            <version>${gwtVersion}</version>
          </dependency>
        </dependencies>
        <!-- JS is only needed in the package phase, this speeds up testing -->
        <executions>
          <execution>
            <phase>prepare-package</phase>
            <goals>
              <goal>compile</goal>
              <goal>i18n</goal>
              <goal>generateAsync</goal>
             </goals>
          </execution>
        </executions>

        <!-- Plugin configuration. There are many available options,
             see gwt-maven-plugin documentation at codehaus.org -->
        <configuration>
          <draftCompile>true</draftCompile>
          <strict>true</strict>
          <inplace>false</inplace>
          <!-- URL that should be automatically opened in the GWT shell (gwt:run). -->
          <runTarget>project.html</runTarget>
          <style>${gwt.style}</style>
          <i18nMessagesBundle>com.domain.client.i18n.Messages</i18nMessagesBundle>
          <i18nConstantsBundle>comdomain.client.properties.ClientProperties</i18nConstantsBundle>         
          <!-- Ask GWT to create the Story of Your Compile (SOYC) (gwt:compile) -->
          <compileReport>true</compileReport>
          <module>youR.gwt.ModuleName</module>
          <logLevel>INFO</logLevel>
          <copyWebapp>true</copyWebapp>
        </configuration>
      </plugin>

答案 2 :(得分:1)

尝试添加以下配置条目:

<warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory>                          
<webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>
<hostedWebapp>${basedir}/src/main/webapp</hostedWebapp>

最后一个可能是真正需要的