【问题标题】:How to be productive in a GWT Maven multi module project如何在 GWT Maven 多模块项目中高效工作
【发布时间】:2011-03-08 17:40:32
【问题描述】:

我有一个大型的多模块 Maven 项目,其中一小部分是用 GWT 制作的 Web GUI。我正在使用,但我不确定如何使我的开发高效。

现在我在开发 GWT 项目中的内容时正在运行托管模式,如果我在此处更改某些内容,我可以在重新加载页面时立即看到更改。但是,如果在包含大部分后端逻辑的 maven 模块中发生了某些变化,我需要对整个项目结构执行 mvn:install,然后执行 gwt:run 以再次启动托管模式。很费时间...

我尝试按照此处的说明进行操作:http://mojo.codehaus.org/gwt-maven-plugin/user-guide/project.html#Multi-project_setup,但它没有按预期工作。

是否可以立即看到在依赖 maven 模块中所做的更改,如果可以,应该如何编写 pom 文件?

【问题讨论】:

  • 如果您对其中一个答案感到满意,请将其视为有效。谢谢!
  • 我对能够做到这一点很感兴趣——从我在这里和其他地方读到的内容来看,我获得多模块 maven 设置以使用 GWT 进行生产的可能性似乎并不大.

标签: gwt maven-2 module maven


【解决方案1】:

如果您使用 Eclipse 和 m2eclipse,您可以将您的项目配置为 resolve dependencies from workspace。引用 m2eclipse 手册:

您可以配置项目以解决工作区的依赖关系。这会改变 Maven 定位依赖项工件的方式。如果项目配置为从工作区解析依赖项,则这些工件不需要存在于您的本地存储库中

通过此设置,无需在相关模块上调用mvn:install。很长一段时间以来,我一直在将此设置与 JRebel 结合使用,以便在多模块 maven 项目中即时重新加载类。

【讨论】:

  • 我以前在其他项目中使用过 JRebel,它通常工作得很好。但是在单独的 Maven 模块中将它与 GWT 混合时,我还没有让它以一种方便的方式工作。你有处理 GWT 和 JRebel 的经验吗?
  • 过去 1.5 年我一直在使用 Apache Wicket,它与 Maven 和 JRebel 完美配合。我还尝试使用基于 GWT 构建的 Vaadin,但我从未在仅 GWT 的应用程序中使用过它。
  • 嗯,你的观点很好,但它似乎不适用于 GWT。也许我做错了什么。 JRebel 正在监视我所有的服务器代码,但是当涉及到 GWT 项目中的所有代码时,JRebel 没有监视任何更改。我在所有项目中都有一个由 Maven 生成的 rebel.xml(我想这是要走的路)。所以我对我的项目设置仍然不满意,这就是为什么你的回答还没有被接受。
【解决方案2】:

从工作区解决依赖关系对我不起作用。

我的解决方案:手动将后端项目依赖添加到运行配置中。

【讨论】:

  • 您能再解释一下吗?我不明白你的意思。
【解决方案3】:

相关的 maven 子模块是必须在 WEB-INF/lib 目录中的库依赖项。您必须在顶层执行 mvn:install 的原因是您必须在构建关联的子模块时重新生成 jar,然后在打包战争时将其复制到 WEB-INF/lib 目录中项目发生。

如果您能想出一种方法让您的 IDE 或其他工具自动更新 WEB-INF/lib 目录中的 JAR,那么您应该很好。您可以尝试让您的 IDE 将您的关联项目自动编译为 WEB-INF/lib 目录下的分解 JAR 结构。这将取决于您的 Web 容器是否会被拾取。我认为Tomcat可能会对此表示满意,但我不确定Jetty。我很快就会自己尝试一下。

【讨论】:

    【解决方案4】:

    我遇到了同样的问题,我为 gwt-maven-plugin 创建了一个“代理”插件。

    你可以在这里查看 https://github.com/xptdev/modgwt-maven-plugin

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多