【问题标题】:Can I get eclipse gwt devmode to always recompile all my modules我可以让 eclipse gwt devmode 始终重新编译我的所有模块吗
【发布时间】:2011-11-28 08:22:49
【问题描述】:

我有两个模块,Main 模块和Included 模块。

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

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

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

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

【问题讨论】:

    标签: eclipse gwt iframe dev-mode


    【解决方案1】:

    将您的included 模块添加到您的ma​​in 模块中。 您可以通过添加

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

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

    【讨论】:

    • 虽然这似乎重新编译了模块,但它也触发了Included模块中的入口点,这会造成很多麻烦。因此,遗憾的是,这对我来说并不是一个可行的解决方案。 ://
    • @wasatz 到底有什么麻烦?
    • 由于两个入口点都触发了来自两个入口点的代码运行。由于他们俩都在网页上放了东西,我突然同时获得了两个界面:)
    【解决方案2】:

    我认为这更像是一个“项目设置”问题,而不是“我怎样才能让 Eclipse 编译我的所有模块”问题。我这么说的原因是,我还没有看到有两个入口点是必要的/有意义的 GWT 项目。拥有单独入口点的主要原因是为了重用 (Dev Guide, Dividing code into multiple modules)。

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

    您也可以查看此问题以进行更多讨论:Multiple Entry Points in GWT

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-27
        • 2013-07-04
        • 1970-01-01
        • 1970-01-01
        • 2015-05-05
        • 2013-08-01
        相关资源
        最近更新 更多