我有两个模块, Main 模块和包含模块。
如果我启动主模块,它将显示一个iFrame接口,其中包含Included模块及其周围的一些附加控件。我也可以单独启动Included模块。 我通过使用两个单独的.gwt.xml文件和两个单独的入口点解决了这个问题,然后将结果放在同一个war文件夹中。
如果我在eclipse中使用GWT Compile,我可以将我的入口点添加到列表中,它将编译两个模块,一切都能正常工作。
但是,如果我单击eclipse中的“运行”按钮让我的应用程序在devmode中运行,那么它只会重新编译我在浏览器中访问的入口点。如果我访问Main入口点,那么我将得到一个弹出窗口“gwt module可能需要重新编译”,devmode不会自动重新编译我的Include入口点。
有没有我可以在eclipse中获取devmode -always-重新编译我的所有模块?
答案 0 :(得分:1)
据我了解,您使用的IFrame包含辅助GWT模块的主页。此框架的内容也必须使用gwt.codesvr=127.0.0.1:9997
参数加载,或者它只是加载GWT javascript的最新编译版本而不使用devmode服务器。
您还应该确保Eclipse中的调试配置包含两个模块。您可以通过不直接单击按钮来验证,但使用菜单打开“调试配置”菜单。假设您之前单击了“调试”按钮,您应该在那里找到现有的GWT调试配置。确保两个模块都列在“GWT”选项卡中。
如果您的模块位于两个不同的项目中,则可能必须使用开发模式服务器的两个实例。 (记得使用不同的端口)
答案 1 :(得分:0)
将附带模块添加到主模块中。 您可以通过添加
来完成此操作<inherits name="fully qualified name of your module"/>
你的main.gwt.xml文件中的这段代码。
答案 2 :(得分:0)
我认为这更像是一个“项目设置”问题,而不是“如何让Eclipse编译所有模块”问题。我说这个的原因是,我还没有看到一个GWT项目,其中两个入口点是必要/有意义的。具有单独入口点的主要原因是重用(Dev Guide, Dividing code into multiple modules)。
我解决问题的方法是使用 Main 模块,其中包含控件和iFrame(并让它继承包含模块),所以同样如此就像你现在一样。我不同的地方是我会将包含模块设置为没有入口点。相反,如果您有理由与主模块分开运行,我会创建一个“驱动器”/“启动器”模块,该模块也会继承包含模块。但是,此驱动程序模块不是像 Main 模块那样的控件和iFrame,而是仅包含一个入口点和附加包含模块的位置。
您也可以查看此问题,以便进一步讨论:Multiple Entry Points in GWT。