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