检查模块的继承链;它可能不是继承所需的模块,或者模块可能无法正确添加其源路径条目

时间:2013-01-08 13:08:30

标签: gwt maven-2

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

  

[错误]无法找到类型   'in.appops.showcase.web.gwt.uploadservice.client.UploadService'[INFO]   [错误]提示:以前的编译器错误可能已成为此类型   unavailable [INFO] [ERROR]提示:检查继承链   来自你的模块;它可能不会继承所需的模块或   模块可能没有正确添加其源路径条目

我的项目有核心和调度模块,它们是没有入口点的实用程序模块和其他具有继承核心模块的入口点的uploadservice模块。

所以我将core.gwt.xml,dispatch.get.xml放在他们的包中,即src / main / java本身,以及maven资源文件夹中的uploadservice.gwt.xml。  也在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>

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

3 个答案:

答案 0 :(得分: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中的“name”选中。

答案 1 :(得分:1)

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

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

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


此外,您应该检查以确保在.gwt.xml文件中具有相应的继承标记。例如,如果您尝试使用SmartGWT而没有标记继承name =“com.smartgwt.SmartGWt”

,您将收到类似的错误

答案 2 :(得分:0)

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