4

我需要有关如何构建多层 GWT/Spring 项目的建议,以便 Gradle 可以构建工件并部署正确的 jar。

谷歌没有多大帮助——我可以找到一些关于构建多项目的文章,并且确实在 Gradle 中构建 GWT 项目,但是,对于我的问题域,所有这些似乎都不完整,因为我遇到了以下问题以下问题。

  1. 在多项目示例中,GWT 依赖项被包含在来自 war 插件的 Web 应用程序中。

  2. 如果我沿着单一的 gradle 构建路线走,那么我将失去与项目的脱钩..

  3. 客户端和服务器都依赖于某些类文件(对于 GWT-RPC);目前这些都打包在客户端项目中,因此再次导致服务器依赖于客户端(对于 GWT-RPC DTO 对象)。这让我觉得我需要一个专门用于共享类文件的第三个模块源代码也存在于 gwt-client 项目中(供 GWT 编译器获取)..

所以; 问题是有没有人遇到过使用 Gradle 作为构建工具并处理上述部分/全部问题的多层 GWT 示例?

在此先感谢,伊恩。

4

1 回答 1

1

我们使用的是单个构建,但我们使用Classcycle maven 依赖插件解决了第 2 点 - “项目耦合”。

最终,您需要三种类型的代码:服务器、客户端和共享。将它们单独打包在单独的 jar 中(如您在第 3 点中所说)的优点是您的服务器 jar 大小将减小,并且您可以在.gwt.xml文件中使用更自由的源目录。

如果您决定使用单个 jar/war,那么您将在服务器上包含额外的、未使用的客户端类。这可能会导致代码泄漏导致运行时异常和(可能?)服务器性能下降。我们通过在构建时强制分层分离(使用 Classcycle)来避免运行时异常,并且来自额外客户端类的额外性能开销应该是微不足道的。您始终可以在编译后使用构建后任务从 jar 中删除客户端代码。

抱歉,我对 gradle 了解不多,但我想无论如何我都会尽力提供帮助。

于 2012-11-07T01:51:26.033 回答