【发布时间】:2013-02-22 10:54:24
【问题描述】:
我刚刚开始使用 Maven 作为构建系统进行 GWT 开发。
我来自 Java + Flex 世界,所以我自然而然地拥有完全分离的客户端模块和服务器端模块。
在深入研究 GWT 的最佳实践并不断深入研究的同时,对我来说,GWT 项目的默认配置越来越像是一堆乱七八糟的职责。尤其是涉及到多模块项目时。
我确实明白,约定规定服务器端逻辑属于“服务器”包,共享代码属于“共享”,以及由 GWT 编译器在“客户端”包中编译为 HTML+JavaScript 的内容。所有代码都转到 src/main/java。到目前为止一切顺利。
无论我怎么看……对我来说,“客户端”包中的东西都只是死代码。即使 java 编译器将其编译为类,这些类也不会在运行时使用,并且只需要在编译阶段向 GWT 编译器提供输入。因此,即使它看起来像 Java,它实际上也不是而且只是看起来像 Java。将这些与“实时”代码放在同一个 jar 中感觉有点脏。
这样的 maven 结构不是更有意义吗:
/src/
/src/main/
/src/main/java
/src/main/shared
/src/main/gwt
让 java-compiler-plugin 使用 src/main/java 和 src/main/shared 并让 GWT 编译器使用 src/main/gwt 和 src/main/shared?
此外,如果构建会产生两种类型的工件,感觉会好很多……普通的“jars”包含来自 src/main/java 和 src/main/shared 的类和第二个“gwt”,它包含类以及 src/main/gwt 和 src/main/shared 的来源。
我不会向一些混淆的 jar 添加依赖项,但可以决定是要导入一些 GWT 组件还是要导入一些服务器端功能。
接下来的事情是,GWT 默认是将 xml、资源和其他东西放在 src/main/java ... XML && Resources != Java ;-)
或者这一切有什么真正的原因,我根本还没有意识到……还是我只是不得不开始变得肮脏而不担心这样的事情?
克里斯
【问题讨论】: