1

我有两个模块,模块和包含模块。

如果我启动 Main 模块,它将显示一个带有 iFrame 的界面,其中包含 Included 模块以及一些附加控件。我也可以单独启动 Included 模块。我通过拥有两个单独的 .gwt.xml 文件和两个单独的入口点解决了这个问题,然后将结果放在同一个 war 文件夹中。

如果我在 eclipse 中使用 GWT Compile,我可以将两个入口点都添加到列表中,它将编译两个模块,一切都会正常工作。

但是,如果我单击 Eclipse 中的“运行”按钮让我的应用程序在 devmode 下运行,那么它只会重新编译我在浏览器中访问的入口点。如果我访问 Main 入口点,那么我会得到一个弹出窗口,说“gwt 模块可能需要重新编译”,并且 devmode 不会自动重新编译我的 Include 入口点。

有什么方法可以让我在 eclipse 中获得 devmode 来 - 总是 - 重新编译我的所有模块?

4

3 回答 3

1

据我了解,您使用的 IFrame 包含辅助 GWT 模块的主机页面。该框架的内容也必须使用gwt.codesvr=127.0.0.1:9997参数加载,否则它只会加载最新编译的 GWT javascript 版本,而不使用 devmode 服务器。

您还应该确保 Eclipse 中的调试配置包含这两个模块。您可以通过不直接单击按钮来验证这一点,而是使用菜单打开“调试配置”菜单。假设您之前单击了“调试”按钮,您应该在那里找到现有的 GWT 调试配置。确保这两个模块都列在“GWT”选项卡中。

如果您的模块位于两个不同的项目中,则可能必须使用开发模式服务器的两个实例。(记得使用不同的端口)

于 2011-10-07T13:28:05.030 回答
0

将您包含的模块添加到您的模块。您可以通过添加来做到这一点

<inherits name="fully qualified name of your module"/>

此代码在您的 main.gwt.xml 文件中。

于 2011-09-30T11:49:48.200 回答
0

我认为这更像是一个“项目设置”问题,而不是“我怎样才能让 Eclipse 编译我的所有模块”问题。我这么说的原因是,我还没有看到有两个入口点是必要的/有意义的 GWT 项目。拥有单独入口点的主要原因是为了重用(开发指南,将代码划分为多个模块)。

我解决问题的方法是让你的Main模块,其中包括控件和 iFrame(并让它继承你的Included模块),所以和你现在一样。我的不同之处在于我会将Included模块设置为没有入口点。相反,如果您有理由将它与模块分开运行,我将创建一个“驱动器”/“启动器”模块,该模块也继承了包含模块。然而,与主模块一样的控件和 iFrame 不同,此驱动程序模块将仅包含一个入口点和一个附加包含模块的位置。

您也可以查看此问题以进行更多讨论:GWT 中的多个入口点

于 2011-10-03T13:44:49.570 回答