随意不要使用 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.jar
and不属于您的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 调试,因此需要额外的编译。