0

我有一个 GWT webapp 分成两个 Maven 项目,其中一个是另一个的依赖项。每次我更改依赖项中的某些内容并在托管模式下运行 webapp 时,我都必须重建子项目并重新启动托管模式以应用更改。这需要很多时间,所以我想问你是否有任何方法可以使用“实时”版本的依赖项来制作 GWT?

4

3 回答 3

1

有2种情况:

  • 对于服务器端代码,假设您使用 DevMode 的嵌入式服务器,重建应用程序然后刷新服务器应该足够了

  • 对于客户端代码,AFAICT,您必须使用依赖模块的源和输出目录,而不是包含它们的 JAR(GWT 将从类路径加载源,但显然它只会看到修改后的源来自文件夹而不是 JAR;至少这是我在测试中发现的)。这与The Maven Way™</a> 背道而驰,但目前唯一的解决方案是使用一个特殊的配置文件,它将依赖项目的源代码导入为您正在运行的项目的源代码。你可以在我的原型中看到这样的例子

    实际上gwt-maven-pluginMGWT-332存在一个错误,可以在运行反应堆构建时自动执行此操作。对于即将到来的官方(从头开始重写,独立于 CodeHaus Mojo 插件),还思考了真正需要什么。gwt-maven-plugin

    如果您的依赖关系不是来自反应堆构建,那么您就只能靠自己了:您选择使其完全不同,所以它的行为方式就是:您每次都必须释放它(甚至是快照)您对其进行更改,并在您的应用程序中使用新版本(这意味着重新启动 DevMode)。

    这可以通过自己运行 DevMode 来规避,无需gwt-maven-plugin. 不过,您需要自己管理类路径(使用 Google Plugin for Eclipse,我想您可以简单地编辑启动配置以将依赖项项目的源文件夹添加到类路径中,在 Maven 提供的类路径之前,这将参考 JAR)。

于 2013-08-22T13:54:12.063 回答
0

从 webapp 下的主应用程序 lib 文件夹中删除依赖的其他应用程序 jar 文件。如果您已将依赖项添加到主应用程序类路径,则 Eclipse 应该使用工作区中的另一个项目来解决依赖关系。

于 2013-08-22T12:43:58.753 回答
0

由于 GWT 构建需要很长时间,我们在 JRebel 许可证上投入了一些资金。我们的后端和 GWT 前端有两个独立的 Eclipse 项目。JRebel 会自动重新加载类,我在编写代码时无需重新启动本地服务器。事实证明,这可以节省大量时间。绝对值得投资。

于 2013-08-22T17:45:13.290 回答