1

我正在构建一个 GWT 项目,但在执行 GwtTest*.java 单元测试时遇到问题。我可以在开发人员模式下运行项目(mvn gwt:run)。但是,当我使用“mvn integration-test”或“mvn gwt:test”运行单元测试时,我收到以下错误。

Loading inherited module 'com.mycompany.site.client.myproject'
   [ERROR] Unable to find 'com/mycompnay/site/client/myproject.gwt.xml' on your classpath; could be a typo, or maybe you forgot to include a classpath entry for source?

下面是我的 pom.xml

<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/maven-v4_0_0.xsd">

 <!-- POM file generated with GWT webAppCreator -->
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.mycompany</groupId>
 <artifactId>myproject</artifactId>
 <packaging>war</packaging>
 <version>0.0.1-SNAPSHOT</version>
 <name>GWT Maven Archetype</name>

 <properties>
   <!-- Convenience property to set the GWT version -->
   <gwtVersion>2.4.0</gwtVersion>
   <!-- GWT needs at least java 1.5 -->
   <webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>
   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 </properties>

 <dependencies>
   <dependency>
     <groupId>com.google.gwt</groupId>
     <artifactId>gwt-servlet</artifactId>
     <version>${gwtVersion}</version>
     <scope>runtime</scope>
   </dependency>
   <dependency>
     <groupId>com.google.gwt</groupId>
     <artifactId>gwt-user</artifactId>
     <version>${gwtVersion}</version>
     <scope>provided</scope>
   </dependency>
   <dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>4.7</version>
     <scope>test</scope>
   </dependency>
   <dependency>
     <groupId>javax.validation</groupId>
     <artifactId>validation-api</artifactId>
     <version>1.0.0.GA</version>
     <scope>test</scope>
   </dependency>
   <dependency>
     <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>1.0.0.GA</version>
    <classifier>sources</classifier>
    <scope>test</scope>
   </dependency>
  </dependencies>

<build>
  <!-- Generate compiled stuff in the folder used for developing mode -->
  <outputDirectory>${webappDirectory}/WEB-INF/classes</outputDirectory>

  <plugins>

    <!-- GWT Maven Plugin -->
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>gwt-maven-plugin</artifactId>
      <version>2.4.0</version>
      <executions>
        <execution>
          <goals>
            <goal>compile</goal>
            <goal>test</goal>
            <goal>i18n</goal>
            <goal>generateAsync</goal>
            <goal>mergewebxml</goal>
          </goals>
        </execution>
      </executions>
      <!-- Plugin configuration. There are many available options, see 
      gwt-maven-plugin documentation at codehaus.org -->
      <configuration>
        <runTarget>myproject.html</runTarget>
        <hostedWebapp>${webappDirectory}</hostedWebapp>
        <i18nMessagesBundle>com.mycompany.site.client.Messages</i18nMessagesBundle>

      </configuration>
    </plugin>

  <!-- Copy static web files before executing gwt:run -->
  <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>
    <configuration>
      <webappDirectory>${webappDirectory}</webappDirectory>
    </configuration>
  </plugin>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
      <source>1.5</source>
      <target>1.5</target>
    </configuration>
  </plugin>
</plugins>
</build>
</project>

在使用 GWT Maven Archetype 创建 GWT 项目时,我使用的是 maven 生成的默认项目结构。所以我的 myproject.gwt.xml 位于 src/main/resources/com/mycompany/site/myproject.gwt.xml。对此问题的任何帮助将不胜感激。

4

1 回答 1

0

我发现了我的问题。我错过了 - 理解应该从什么返回

public String getModuleName() { . . . }

我最初将路径返回到我的入口点类,但您应该将路径返回到您的 gwt.xml 文件。我也错过了理解“模块”所指的内容。

于 2012-06-04T17:13:27.353 回答