目前在我们的项目中,我们有下面提到的结构。我们的项目主要使用GWT& Spring框架。
我们的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模块。就像差异一样。部分应用程序。
我的问题是:
答案 0 :(得分:0)
要回答第二个问题,每个模块应该有一个.gwt.xml文件,指出该模块中的客户端(和共享)目录。对于使用其他GWT模块的GWT模块,您应该使用.gwt.xml文件中的“inherit”来引用它们。
本页很好地描述了其中的一些概念: http://code.google.com/webtoolkit/doc/latest/DevGuideOrganizingProjects.html
答案 1 :(得分:0)
问题1) 如果它对您和其他开发人员有意义,那么它听起来像是一个相当不错的项目结构。 (摘自Here)
你应该捆绑这些类和 一个包中的接口为几个 原因,包括以下内容:
- 您和其他程序员可以轻松确定这些类型 相关。
- 您和其他程序员知道在哪里可以找到可以提供的类型 与图形相关的功能。
- 您的类型名称不会与其他类型的名称冲突 包因为包创建了一个 新命名空间。
- 您可以允许包中的类型具有不受限制的访问权限 彼此仍然限制访问 对于包装外的类型。
问题2) 我要澄清一下,关于:
我应该在application.gwt.xml中提及每个模块名吗?
你的意思是包裹吗?
...
<entry-point class='com.customername.projectname.AppEntryPoint'/>
<source path="modulename.client"/>
<source path="modulename.anotherpackage"/>
</module>
如果要由GWT编译器编译任何子包,则应在.gwt.xml
中引用任何包(从.gwt.xml
所在的包开始)。引用的包将自动由GWT编译器编译。
不确定您的问题是关于Spring配置的。
希望能帮助。
答案 2 :(得分:0)
问题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的源。