6

我想创建一个具有多个 gwt 模块的 gwt maven 项目。其中一些只是实用模块,意味着它们没有入口点。基本上我已经有一个包含多个 gwt 模块的 gwt 项目,并且我已将其转换为 maven,但在编译时它给了我以下异常:

[错误] 找不到类型'in.appops.showcase.web.gwt.uploadservice.client.UploadService' [信息] [错误] 提示:以前的编译器错误可能导致此类型不可用 [信息] [错误] 提示:检查模块的继承链;它可能没有继承所需的模块,或者模块可能没有正确添加其源路径条目

我的项目有 core 和 dispath 模块,它们是没有入口点的实用程序模块和其他具有继承核心模块的入口点的上传服务模块。

所以我把 core.gwt.xml ,dispatch.get.xml 放在他们的包中,即在 src/main/java 本身和uploadservice.gwt.xml 在maven的资源文件夹中。同样在 pom.xml 我提供了要编译的模块:

<configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>org.codehaus.mojo</groupId>
                                    <artifactId>gwt-maven-plugin</artifactId>
                                    <version>2.4.0</version>
                                    <goals>
                                        <goal>clean</goal>
                                        <goal>resources</goal>
                                        <goal>compile</goal>
                                        <goal>i18n</goal>
                                        <goal>generateAsync</goal>
                                    </goals>
                                    <configuration>
                                        <runTarget>Index.html</runTarget>
                                        <hostedWebapp>${webappDirectory}</hostedWebapp>
                                         <modules>
                                            <!-- <module>platform.bindings.web.gwt.dispatch.Dispatch</module>
                                             <module>platform.core.Core</module>   -->
                                            <module>showcase.web.gwt.addressbook.AddressBook</module>
                                            <module>showcase.web.gwt.uploadservice.UploadService</module>
                                        </modules> 
                                    </configuration>
                                </pluginExecutionFilter>
                                <action>
                                    <execute />
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>

谁能帮我摆脱这个例外。我是否需要提供编译模块的命令或其他任何东西?

4

3 回答 3

4

注 1 - 当使用 gwt 标准方法时,您的文件夹结构

    src/main/java/showcase/web/gwt/yourmodule/yourmodule.gwt.xml
    src/main/java/showcase/web/gwt/yourmodule/client 
    src/main/java/showcase/web/gwt/yourmodule/public 

Your pom references 
    <module>showcase.web.gwt.addressbook.AddressBook</module>
    <module>showcase.web.gwt.uploadservice.UploadService</module>

Your .gwt.xml file location
    src/main/java/showcase/web/gwt/addressbook/AddressBook.gwt.xml
    src/main/java/showcase/web/gwt/uploadservice/UploadService.gwt.xml

注 2 - <lifecycleMappingMetadata>适用于您的 m2e = maven eclipse 插件。有关 GWT MAVEN POM 示例的清晰示例 - http://code.google.com/p/google-web-toolkit/source/browse/trunk/samples/validation/pom.xml

注 3 - 完全按照 gwt maven 示例项目的极其简单的示例 - http://code.google.com/p/google-web-toolkit/source/browse/trunk/samples/validation/

不要更改文件夹位置。*遵循命名约定。* 甚至像 public、client 这样的文件夹名称也是由 GWT 中的“名称”选择的。

于 2013-01-08T18:16:06.560 回答
1

如果在加载入口点时发生此错误,您可能需要更改 *.gwt.xml 文件中的标签。

更改包结构后,我能够成功修复错误“检查模块的继承链;它可能没有继承所需的模块或模块可能没有正确添加其源路径条目”。

  • 在您的 .gwt.xml 文件中,在文件底部附近找到源标记。
  • 恢复到较早的工作提交,或打开一个已知的工作项目
  • 请注意工作源标签相对于工作项目的包结构所遵循的模式。
  • 前滚到损坏的提交
  • 按照相同的模式修改您的源标签以对应于当前的包结构。


此外,您应该检查以确保您的 .gwt.xml 文件中有适当的继承标签。例如,如果您尝试使用 SmartGWT 而没有标签继承 name="com.smartgwt.SmartGWt",您将收到类似的错误

于 2013-08-08T20:02:32.160 回答
0

你的UploadService.gwt.xml文件应该在src/main/resources/in/appops/showcase/web/gwt/uploadservice. 其他 GWT 模块描述符也应该在它们的包中。

于 2013-01-08T15:30:28.080 回答