我有一个GWT的实用程序模块没有UI(因此,没有继承自com.google.gwt.core.client.EntryPoint
的类。当我尝试使用GWT 1.7.1编译此模块时,我收到此错误:
[ERROR] Module has no entry points defined
如何摆脱此错误?我真的必须定义一个虚拟入口点吗? Google是如何编译自己的实用程序模块的?
答案 0 :(得分:5)
实用工具罐不需要由GWT编译。
如果你只想在其他GWT应用程序中重用它作为库,那么你只需要在一个jar中包装.class和.java文件,并确保你有一个.gwt.xml来说明客户端源的位置是。如果您遵循约定(客户端中的客户端类),那么您可以放弃,否则您需要为客户端包指定标记
然后确保在要编译入口点的项目中继承此.gwt.xml。
答案 1 :(得分:3)
不,您不需要EntryPoint。以下是我的一个模块中没有一个模块的示例:
<?xml version="1.0" encoding="UTF-8"?>
<module>
<source path="grid" />
<inherits name="com.google.gwt.user.User"/>
</module>
简短的回答是你不要在模块中编译代码。 GWT只需要它们作为源代码。编译主模块(具有入口点的模块)时,它使用您在.gwt.xml文件中继承的任何其他模块的源来编译整个项目。
答案 2 :(得分:0)
我正在使用gwt-maven-plugin
Maven2插件来编译我的代码。我从旧版maven-googlewebtoolkit2-plugin
插件迁移了代码。对于旧插件,我必须指定哪些模块是这样的入口点:
<compileTargets>
<param>com.project.module.Module</param>
</compileTargets>
对于新插件,它是
<module>com.project.module.Module</module>
由于插件无法找到要编译的模块,因此它会搜索“* .gwt.xml”并将所有模块编译为“UI模块”(必须有一个入口点)。
答案 3 :(得分:0)
我们有一个实用程序模块,它构建了&amp;处理一些常见的UI元素,以及一堆javascript / json常见任务。
看起来我们所做的(也从totsp插件迁移到沿线某处的codehaus插件)是在util模块中包含一个入口点;它只是空的。 (它包括评论“故意无操作”)。
然后pom只是将事物称为依赖。
答案 4 :(得分:0)
如果使用eclipse GWT插件,只需在编译之前弹出的moduleslist中删除没有EntryPoint的模块。