Google-Eclipse插件:向项目添加入口点

时间:2012-11-03 16:41:43

标签: java eclipse gwt web-applications google-eclipse-plugin

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

问题是:我不是默认设置的项目结构GWT(或Google-Eclipse插件)的忠实粉丝。所以我试图以对我来说具有逻辑意义的方式进行设置,但仍然可以在DevMode中运行并在本地部署。

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

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

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

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

这就是我所看到的:

enter image description here

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

请注意:我预计很多答案都是“只使用Web应用程序向导,它更容易”等等。我理解这一点和我(暂时)接受了在没有插件的Web应用程序向导的帮助下尝试配置我自己的GWT应用程序的注意事项。如果我发现它真的很难在这里“滚动我自己”,那么我会陷入困境并回到向导。但是我想在这之前给出最好的镜头!

1 个答案:

答案 0 :(得分:5)

随意不使用Eclipse插件(以下简称GPE)!没有必要 - 就像Eclipse所说的那样,它是所有Java,或者至少是自包含的,就像Java一样。如果您不想要向导,JSNI自动完成,UiBinder自动完成,您甚至可以将插件保留。

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

您可能还需要json.jarvaldation-api.jar及其来源。

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

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

完全避免使用GPE:

DevMode的:

创建一个新的Java Run Configuration,并验证上面的类是否在类路径以及源目录中。将主类设置为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的专用Dev Mode类加载器将获取更改。

编译:

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

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

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

模块选择对话框不是必需的,但另外两个是。首先,正如你所做的那样,在谷歌&gt; Web Toolkit启用“使用Google Web Toolkit”,并确保选择了有效的SDK。这样做有两件事 - 它将必要的jar添加到类路径(在'GWT SDK'下),并在整个项目中启用一些其他选项 - JSNI自动完成,开发模式,各种向导(我们将忽略)。另一件必要的是去Google&gt; Web应用程序,指示“此项目具有WAR目录”,并为其指定该目录的路径,以便Dev Mode知道从何处启动Jetty。

完成此操作后,插件应该能够让您从指向带入口点的模块的html文件开始。我要掩饰这些细节,因为这是基本的项目设置 - 向导擅长的东西,例子很丰富,你可能已经阅读了这些指示(否则你不会跳过向导......) 。从之前选择的WAR文件夹中,选择这样的html文件,右键单击它并选择Run As ...&gt; Web应用程序。 GPE可能会再次询问WAR文件夹 - 帮助它,你就可以了。开发模式会将视图添加到eclipse而不是独立窗口,您将能够从那里监视进度。

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