我需要有关如何构建多层GWT / Spring项目的建议,以便Gradle可以构建工件并部署正确的jar ..
Google没有多大帮助 - 我可以找到很多关于构建多项目的文章,并且确实在Gradle中构建了GWT项目,但是对于我的问题域来说这些都是不完整的,因为我发现了以下问题,因为我遇到了以下问题。
在多项目示例中,GWT依赖项包含在来自war插件的Web应用程序中。
如果我沿着单一的gradle建设路线走下去,那么我就会失去与项目的脱钩......
客户和客户服务器依赖于某些类文件(对于GWT-RPC);目前这些都打包在客户端项目中,因此再次导致客户端的服务器依赖(对于GWT-RPC DTO对象)。这使我觉得我需要一个专门用于共享类文件的第三个模块。源也存在于gwt-client项目中(GWT编译器可以选择它们)..
因此;问题是有没有人遇到过使用Gradle作为构建工具的多层GWT示例。处理上述部分/全部问题?
提前致谢, 伊恩。
答案 0 :(得分:1)
我们正在使用单一版本,但我们使用Classcycle maven依赖插件解决了第2点 - “项目耦合”。
最终,您需要三种类型的代码:服务器,客户端和共享。将它们单独打包在单独的罐子中的优势(正如您在第3点中所述)是您的服务器jar大小将减少,并且您可以在.gwt.xml
文件中使用更自由的源目录。
如果您决定使用单个jar / war,那么您将在服务器上包含额外的未使用的客户端类。这可能导致运行时异常,因为代码泄漏和(可能?)服务器上的性能更差。我们通过在构建时强制执行分层分离(使用Classcycle)来避免运行时异常,并且额外客户端类的额外性能开销应该是边际的。使用后期构建任务,您始终可以在编译后从jar中删除客户端代码。
抱歉,我对gradle知之甚少,但我想我还是会尝试帮助。