【问题标题】:Running SuperDevMode with a Maven EAR packaged GWT application使用 Maven EAR 打包的 GWT 应用程序运行 SuperDevMode
【发布时间】:2016-04-09 22:23:21
【问题描述】:

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

我需要一些指导来使用 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

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

【问题讨论】:

    标签: java maven google-app-engine gwt


    【解决方案1】:

    Mojo 的 GWT Maven 插件无法轻松地在多模块构建中运行开发模式。要获得正确的类路径,您需要在 app-client 模块中运行 gwt:rungwt:run-codeserver 目标(为此,您需要 mvn install 您的依赖项 –app-core– 和/或修改配置文件和build-helper-maven-plugin;例如,请参阅this POM,它都需要mvn install 来解决依赖关系,并使用build-helper-maven-plugin,因此您可以更改共享代码而无需mvn install 和重新启动开发模式)。

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

    【讨论】:

    • 感谢@thomas-broyer,这有助于修复gwt:compile 目标,启动代码服务器没有问题。要将其与appengine:devserver 集成,是否只需将launcherDir 设置为写入app-ear 目标目录?
    • 没关系,现在使用该配置似乎一切正常。感谢您的帮助,我期待在未来构建 GWT 3 应用程序,所以继续努力!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多