我有一个GWT的实用程序模块没有UI(因此,没有类继承自 com.google.gwt.core.client.EntryPoint 。当我尝试使用GWT 1.7.1编译此模块,我收到此错误:

[ERROR] Module has no entry points defined

如何摆脱此错误?我真的必须定义一个虚拟入口点吗? Google是如何编译自己的实用程序模块的?

有帮助吗?

解决方案 3

我正在使用 gwt-maven-plugin Maven2插件来编译我的代码。我从旧版本的 maven-googlewebtoolkit2-plugin 插件中迁移了代码。对于旧插件,我必须指定哪些模块是这样的入口点:

                <compileTargets>
                    <param>com.project.module.Module</param>
                </compileTargets>

对于新插件,它是

                <module>com.project.module.Module</module>

由于插件无法找到要编译的模块,因此它会搜索“* .gwt.xml”。并将它们全部编译成“UI模块”。 (必须有一个入口点)。

其他提示

实用工具罐不需要由GWT编译。

如果你只想在其他GWT应用程序中重用它作为库,那么你只需要在一个jar中包装.class和.java文件,并确保你有一个.gwt.xml来说明客户端源的位置是。如果您遵循约定(客户端中的客户端类),那么您可以放弃,否则您需要为客户端包指定标记

然后确保在要编译入口点的项目中继承此.gwt.xml。

不,您不需要EntryPoint。以下是我的一个模块中没有一个模块的示例:

<?xml version="1.0" encoding="UTF-8"?>
<module>
    <source path="grid" />
    <inherits name="com.google.gwt.user.User"/>
</module>

简短的回答是你不要在模块中编译代码。 GWT只需要它们作为源代码。编译主模块(具有入口点的模块)时,它使用您在.gwt.xml文件中继承的任何其他模块的源来编译整个项目。

我们有一个实用程序模块,它构建了&amp;处理一些常见的UI元素,以及一堆javascript / json常见任务。

看起来我们所做的(也从totsp插件迁移到沿线某处的codehaus插件)是在util模块中包含一个入口点;它只是空的。 (它包括评论“故意无操作”)。

然后pom只是将事物称为依赖。

如果使用eclipse GWT插件,只需在编译之前弹出的moduleslist中删除没有EntryPoint的模块。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top