使用Maven EAR打包的GWT应用程序运行SuperDevMode

时间:2016-01-05 22:57:48

标签: java maven google-app-engine gwt

我已经成功地将我的典型GWT 2.7和AppEngine堆叠应用程序从单个Maven模块重构为多个 - 我可以编译,运行AppEngine dev服务器并进行部署。

我需要一些指导,以便使用GWT mojo配置GWT SuperDevMode。现在,客户端和服务器组件被拆分为不同的模块,并使用EAR module进行打包,我不确定从哪里开始。

项目布局类似于:

/app-client (GWT) - I use the GWT mojo here to compile a client WAR. I used to have everything in here.
/app-core (Shared Code) - JAR
/app-server (Default AppEngine Module) - WAR
/app-auth (Auth AppEngine Module) - WAR
/app-worker (Worker AppEngine Module) - WAR
/app-ear (EAR Package) - I use the AppEngine mojo here for deployment.
pom.xml - parent

我假设必须在app-ear模块上运行GWT mojo,但是如何为运行配置提供app-client源?

1 个答案:

答案 0 :(得分:1)

用于GWT的Mojo的Maven插件无法在多模块构建中轻松运行开发模式。要获得正确的类路径,您需要在gwt:run模块中运行gwt:run-codeserverapp-client目标(要做到这一点,您需要mvn install您的依赖项 - {{ 1}} - 和/或浏览个人资料和app-core;有关示例的信息,请参阅this POM,这两个例子都需要build-helper-maven-plugin来解决依赖关系,并使用mvn install这样您就可以对共享代码进行更改,而无需build-helper-maven-plugin并重新启动开发模式。

FWIW,net.ltgt.gwt.maven:gwt-maven-plugin(免责声明:我是作者)是从一开始就考虑到这个用例而创建的;所以你实际上在父模块上运行mvn installgwt:devmode并告诉它哪个模块是GWT应用程序以及在哪里生成gwt:codeserver