GWT 2.5.0 mvn 安装错误"Rebind result <class> must be a class"



问题:我在GWT 2.5.0项目上运行mvn install,我用GWT -maven-plugin构建,并得到错误Rebind result 'c3gw.fwk.gui.client.ClientFactory' must be a class

这是我的pom.xml的一个片段:
  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>gwt-maven-plugin</artifactId>
    <version>2.5.0</version>
    <executions>
      <execution>
         <goals>
             <goal>compile</goal>
             <goal>test</goal>
             <goal>i18n</goal>
             <goal>resources</goal>
             <goal>generateAsync</goal>
         </goals>
      </execution>
     </executions>
     <configuration>
       <runTarget>C3gwGui.html</runTarget>
       <hostedWebapp>${webappDirectory}</hostedWebapp>
       <i18nMessagesBundle>c3gw.fwk.gui.client.Messages</i18nMessagesBundle>
     </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>
      <configuration>
          <webappDirectory>${webappDirectory}</webappDirectory>
      </configuration>
  </plugin>

这是我的C3gwGui.gwt.xml代码片段:

<replace-with class="c3gw.fwk.gui.client.ClientFactoryImpl">
    <when-type-is class="c3gw.fwk.gui.client.ClientFactory" />
</replace-with>

这是抛出错误的代码片段:

public void onModuleLoad() {
    ClientFactory clientFactory = GWT.create(ClientFactory.class);
    ...
}

ClientFactory是一个接口,而ClientFactoryImpl实现了这个接口。

到目前为止我所发现的:当我运行调试时,代码在Eclipse中工作得很好,当我执行mvn安装时,它就不起作用了。我已经运行了gwt-maven-plugin的所有目标(清理、编译、源代码等),它们都能正常工作,所以我现在能得出的唯一结论是,在maven-war-plugin阶段或更晚的时间里发生了一些事情。

我还从下面的谷歌教程中获取了这段代码的基础知识,他们使用了一个接口,所以它应该可以工作,假设示例项目也可以工作,即

删除war:exploded,正如Thomas所指出的,解决了问题。

相关内容

  • 没有找到相关文章

最新更新