您对模块有了正确的认识——它(在开发方面)描述了要使用的 java 源路径、开始编译的入口点以及编译时要使用的各种属性(浏览器、语言环境)。编译后,模块也代表输出 - javascript 和任何相关的其他编译文件,无论是日志、图像、样式表等。
相比之下,ClientBundle 是开发人员可以告诉编译器 java 源路径中的某些资源在编译后将被使用的一种方式。CssResource 附带额外检查是否使用了 css 样式名称(如果没有,则应将其删除以最小化编译输出),ImageResource 确保文件在编译时存在,并且都以针对每个浏览器的最佳优化方式输出这些文件。大多数浏览器的图像实际上都包含在庞大的 JS 文件中,以最大限度地减少对服务器的调用次数,对于不支持此功能的那些,它们会自动组合在一起。
通过声明 ClientBundle 接口并调用GWT.create(MyClientBundle.class)
,您要求编译器处理 ClientBundle 细节,以使这些引用的文件和类在您的应用程序中可用。它与 GWT 生成器有什么关系,这是一个比 SO 答案更高级的主题......
是的,ClientBundles描述了正在运行的应用程序所需的静态资源,是的,一个编译的模块由各种静态资源组成,但我会改写你的理解,这样说:ClientBundle 是可以包含静态内容的方式之一在 GWT 模块中,以使其尽可能高效地加载。