如何在GWT Maven多模块项目中提高工作效率

时间:2011-03-08 17:40:33

标签: gwt maven-2 module maven

我有一个很大的多模块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文件?

4 个答案:

答案 0 :(得分:4)

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

  

您可以配置项目以解析工作空间的依赖关系。这具有改变Maven定位依赖性工件的方式的效果。如果项目配置为解析工作空间的依赖项,则不需要在本地存储库中存在这些工件

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

答案 1 :(得分:1)

解决工作区中的依赖关系对我没有用。

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

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