2

使用 Google-Eclipse 插件,我已经成功地创建、构建和部署(本地)一个非常基本的 GWT Web 应用程序。

问题是:我不是默认设置的项目结构 GWT(或 Google-Eclipse 插件)的忠实粉丝。所以我试图以一种对我来说合乎逻辑的方式进行设置,但仍然能够在DevMode本地运行和部署。

所以我创建了第二个项目,但没有将其设置为 Web 应用程序;相反,我使用了普通的 Java 应用程序。我创建了我的源目录、我的EntryPoint实现 ( TestModule implements EntryPoint)、我的TestModule.gwt.xml、我的主机页面 HTML 等。我在第一个(成功的)项目中所做的所有工件。

但现在我正在Run Configurations尝试手动设置运行配置,类似于 Web 应用程序向导使用我构建的第一个应用程序为我创建的运行配置。

Run Configurations >> GWT选项卡中,它给了我一个窗口,我可以在其中添加Available Modules。当我单击“添加”按钮时,无论我输入什么,它都不会为我提供可供选择的选项列表。

所以我退出了Run Configurations对话框,假设我需要以不同的方式设置我的项目属性。所以我右键单击我的项目,转到Properties >> Goodle >> Web Toolkit,果然,看到一个类似的面板,允许我添加可用模块。我相信,如果我正确配置了此部分,那么在对话框中我将可以使用可用模块列表Run Configurations,并且我应该能够继续。

这是我所看到的:

在此处输入图像描述

关于如何正确配置我的项目以便此Available Modules对话框实际为我提供选项的任何想法?提前致谢!

请注意:我预计许多答案都类似于“只需使用 Web 应用程序向导,它就容易多了”等。我理解这一点,并且我(暂时)接受了尝试配置我自己的 GWT 应用程序的警告,而无需插件的 Web 应用程序向导的帮助。如果我发现在这里“自己动手”真的非常非常困难,那么我会屈服并回到巫师那里。但我想在这样做之前尽力而为!

4

1 回答 1

5

随意不要使用 Google Plugin for Eclipse(以下简称 GPE)!没有必要——它全部是 Java,或者至少是自包含的,足以像 Eclipse 所说的 Java 一样。如果您不想要向导、JSNI 自动完成、UiBinder 自动完成,您甚至可以不使用插件。

要在开发模式下运行 GWT 项目,您只需要 SDK 的基本移动部分: * gwt-dev.jar- 开发模式(代码服务器和简单的 HTTP 服务器)、编译器和各种其他工具 * gwt-user.jar- GWT 语言运行时(JavaScriptObject、GWT、等)和标准事件、小部件和其他位 * 可选:gwt-servlet.jar- 一些基本 GWT servlet 在 servlet 容器中运行的类 * 可选:requestfactory-*.jar- 如果您不使用 RequestFactory,请不要担心

您可能还需要 ajson.jar和 thevaldation-api.jar以及它的来源。

这足以让您使用纯 Java 编译任何项目。gwt-user.jarand不属于您的gwt-dev.jar服务器类路径 - 不要将它们放在WEB-INF/lib/目录中,只需将它们放在手边即可将您的代码编译为 JavaScript。

开发模式和编译器本身都只是带有main方法的类,因此可以启动标准的 Eclipse 运行/调试配置。每个人都有自己的选择,例如“我在哪里可以找到你的资源”、“你正在启动什么模块”,以及在开发模式的情况下,“war/我要服务的目录在哪里”。

完全避免 GPE:

开发模式:

创建一个新的 Java 运行配置,并验证上述类是否在类路径以及您的源目录中。将主类设置为com.google.gwt.dev.DevMode,添加一些参数:

-war path/to/war/dir/ my.package.to.ModuleToRun

其他一切都只是改变它的额外标志,并提示从哪里开始。查看https://developers.google.com/web-toolkit/doc/latest/DevGuideCompilingAndDebugging#What_options_can_be_passed_to_development_mode了解您可以使用的其他选项

要对此进行调试,请将其作为调试配置运行 - Eclipse 会抱怨它无法热交换类,但忽略这些并点击继续。当您在 .java 文件中进行更改时,保存并刷新浏览器 - GWT 的专用开发模式类加载器将获取更改。

编译:

如上所述,使用类路径上的重要类和 jar 进行运行配置。这一次,使用com.google.gwt.dev.Compiler主类,并在程序参数下指定要构建的模块。同样,您可以使用许多选项来更改它的编译方式以及它提供的附加输出,请参阅https://developers.google.com/web-toolkit/doc/latest/DevGuideCompilingAndDebugging#DevGuideCompilerOptions了解更多选项

在没有向导的情况下使用 GPE:

这里要记住的重要一点是,GPE 只是掩盖了一些细节——您不需要使用向导,但在某种程度上,它都是向导,直到您只使用原始 Java 工作。类路径、导入等 - 这些都是或多或少适用于 GWT 开发的 Java 概念,尽管它添加了模块来帮助设置延迟绑定规则等。

模块选择对话框不是必需的,尽管另外两个是必需的。首先,正如您所做的那样,在 Google > Web Toolkit 下打开“使用 Google Web Toolkit”,并确保选择了有效的 SDK。这做了两件事——它将必要的 jars 添加到类路径(在“GWT SDK”下),并在整个项目中启用了一些其他选项——JSNI 自动完成、开发模式、各种向导(我们将忽略)。另一个必要的部分是转到 Google > Web 应用程序,指出“此项目有一个 WAR 目录”,并为其提供该目录的路径,以便开发模式知道从哪里启动 Jetty。

完成此操作后,插件应该能够让您从指向具有入口点的模块的 html 文件开始。我将忽略这些细节,因为这是基本的项目设置 - 向导擅长的事情,示例充满,并且您可能已经阅读了这些说明(否则您不会跳过向导......) . 从先前选择的 WAR 文件夹中,选择这样一个 html 文件,右键单击它并选择 Run As... > Web Application。GPE 可能会再次询问 WAR 文件夹 - 帮帮它,然后您就可以上路了。开发模式将向 eclipse 添加一个视图而不是一个独立的窗口,您将能够从那里监视进度。

然后,只需转到工具栏中的 G 图标并选择“GWT Compile Project...”即可进行编译。将出现一个对话框,询问要使用的项目、开始的入口点以及一些其他选项。请注意,如果您编译到 war 文件夹然后启动开发模式,您可能会发现开发模式会覆盖部分编译输出以便于 Java 调试,因此需要额外的编译。

于 2012-11-03T19:06:21.243 回答