我想创建一个包含多个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>
任何人都可以帮我摆脱这个例外。是否需要提供编译模块或其他任何东西的命令?
答案 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文件中具有相应的继承标记。例如,如果您尝试使用SmartGWT而没有标记继承name =“com.smartgwt.SmartGWt”
答案 2 :(得分:0)
您的UploadService.gwt.xml
文件应位于src/main/resources/in/appops/showcase/web/gwt/uploadservice
。其他GWT模块描述符也应该在它们的包中。