现在在我们的项目中,我们有下面提到的结构。我们的项目主要使用GWT和Spring框架。
- com.客户名称.项目名称.客户端.模块名称
- com.客户名称.项目名称.client.rpc.模块名称
- com.customername.projectname.shared.validator.module名称
- com.客户名称.项目名称.服务器.模块名称
- com.客户名称.项目名称.spring.dao.模块名称
- com.客户名称.项目名称.spring.service.模块名称
Our application.gwt.xml
包含以下需要转换为 java 脚本的源条目。
source path='client'
source path='shared'
由于我们在服务器端使用 spring,因此我们使用 spring 注解来标记服务和 DAO,然后在applicationContext.xml
我们使用下面的配置来扫描 DAO 和服务层。
<context:annotation-config/>
<context:component-scan base-package>
现在我们的客户想要采用下面提到的结构。按模块对所有内容进行分组。此外,在我们的例子中,模块不是 GWT 模块。就像 diff 一样。应用程序的一部分。
- com.客户名称.项目名称.模块名称.客户端
- com.客户名称.项目名称.模块名称.rpc
- com.客户名称.项目名称.模块名称.validator
- com.客户名称.项目名称.模块名称.服务器
- com.客户名称.项目名称.模块名称.spring.dao
- com.客户名称.项目名称.模块名称.spring.Service
我的问题是:
- 考虑到它是非常大的应用程序,是否建议使用上面的方法?
- 如果要实现上述方法,如何设置需要由gwt编译器从java转换为java脚本的包/源文件。我应该在 application.gwt.xml 中提及每个模块名称吗?
问题 1)我同意 edwardTheGreat 的观点,你最初的包结构听起来非常合理。您只需在 gwt.xml 文件中列出客户端和共享包(需要编译成 javascript 的包)。
问题 2)如果您确实更改了包结构,就像您提到的那样,您将必须在 gwt.xml 文件中列出每个模块的客户端和共享目录。正如 Daniel 所说,您可以将每个模块分解为它自己的“GWT 模块”,然后继承每个应用程序模块中所需的 GWT 模块。
要实现此目的,您必须使每个继承的 GWT 模块的源可供继承模块使用。无论您是通过 Maven、Ant 等来完成此操作,都没有关系。但是顶级 GWT 模块必须能够在编译时访问所有继承的 GWT 模块的源代码。例如:
<module rename-to='A'>
<inherits name='org.example.B' />
... other inherits, entry-point, etc. ...
<source path='client' />
<source path='shared' />
</module>
通过这种结构,模块“A”必须能够访问模块“B”的源。模块“B”可以像通常的 GWT 模块一样构建,但是在编译时,模块“A”必须在类路径上具有 B 的源代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)