如何定义个XML模块文件
模块是被定义于名为 gwt.xml.ModulName 的文件中。这个文件应改被放在你的工程的根目录。如果你的工程使用的GWT标准工程文件夹的结构,那么你的配置文件应该向下面那样简单。
<module>
<inherits name="com.google.gwt.user.User" />
<entry-point class="com.example.cal.client.CalendarApp" />
</module>
加载模块
模块配置的XML文件应该在JAVA的类加载路径里面。模块总是通过他们的逻辑名被引用。模
块的逻辑名是这样的:包名1.包名2.模块名。逻辑名并不用反映实际的文件系统路径和文件扩展名。如下,假如一个模块的XML文件:
~/src/com/example/cal/Calendar.gwt.xml
那么对应的逻辑名可以是:
com.example.cal.Calendar
重命名模块
模块配置文件的<module>元素有一个可选的属性 rename-to 。这个属性可以让JAVA -> JavaScript的编译器把对应模组按照重命名之后的名字来处理。重命名一个模块可以带来如下好处:
- 可以使用一个不反应实际包结构的短名
-
to create a "working module" to speed up development time by restricting the number of permutations (这个不知道该怎么译, 所以把原文放在这里。permutations 是排列组合的意思。)
com.foo.WorkingModule.gwt.xml:
<module rename-to="com.foo.MyModule">
<inherits name="com.foo.MyModule" />
<set-property name="user.agent" value="ie6" />
<set-property name="locale" value="default" />
</module>
对应如上的配置文件,当WorkingModule.gwt.xml被编译的时候,默认情况下将仅仅产生一个用于ie6的版本。这种方式可以帮助你提高开发时的编译速度。这时编译器的输出将是以重名后的包名产生的。
但是,在主机(Host)模式下,需要使用实际的XML文件名对应的模块名,即物理名。总之
主机模式下,GWT(谷歌网站工具)只会按照物理名去查找对应的模块。
使用多个模块
大多数情况下,你可能会打算创建一个可以在其他GWT工程中重用的模块。创建这类模块的时候并不意味着该模块必须要定义一个入口(entryPoint)。实际上, GALGWT(Google API Library for Google Web Toolkit )中Gears对GWT的绑定中就有这种情况。你可以在jar包中的gwt-google-apis/com/google/gwt/gears/ Gears.gwt.xml 中看到,那里并没有定义入口。所以任何想要在GWT工程中使用Gears for GWT的模块都需要在其模块配置文件中继承Gears.gwt.xml module。例如: 一个名为 Foo 的模块项使用GALGWT, 则其模块配置文件中应该有一个<inherits> 元素。
<module>
...
<inherits name="com.google.gwt.gears.Gears" />
在同一个超文本文件中加载多个模块
如果你的应用程序需要多个GWT模块, 那么你有两种方式加载它们。
1. 分别编译各个模块,然后应用程序的主页面中单独的在不同的<script>中去指定每个模块。
2.创建一个顶层的模块的XML配置文件,在其中包含所有你打算包含的模块。然后编译顶层模块,
进而只产生单个的js 输出结果。
第一种方法单独编译每个模块的方法似乎看起来更像是一种编译模块的方法。但是不幸的是,
在GWT中,这回引起应用程序开始的时候需要加载多个模块, 而多个模块这件会有大量的冗余
数据, 例如相同GWT库的文件,甚至还有可能遇到冲突。基于这些原因, 推荐使用第二种方式。
重载一个实现
<super-source>标签告诉编译器将一个目录作为源码的根目录。当你想在一个GWT工程中重用一个java的
api,而原先的源码路径又没法编译这个类的时候这个标签就有用武之地了(这句没有译出原话的意思来,
看后面的意思,等我都搞懂了再回来改)。这个功能多的时候用来模拟一个尚未被GWT实现的JRE的功能。
请看下面这个例子,
假设你打算实现JRE 下面java.util 下面的UUID 类, 你的工程的模块是:
com/example/myproject/MyProject.gwt.xml.
那么你可以把UUID 类放到 com/example/myproject/jre/java/util/UUID.java.
然后在MyProject.gwt.xml 中加入<super-source path="jre" />
这就告诉编译器将com/example/myproject/jre 加到源码路径下面,但是去掉,并且包括jre,之前的部分。
这样做的实际效果是, com/google/myproject/gwt/jre/java/util/UUID.java 将会被视作java/util/UUID.java 。
看到了吧, 这样实际上你为GWT的jre增加了一个类的实现。
基于GWT的工程内在的使用了这种技术来实现对JRE的模拟。必须指出是,
以这种对JRE类进行的重载实际上并不能被用于主机(host)模式。主机模式中, 本地的jre总是替代了
源码编译而来的类。
<super-source> 标签支持基于模式的过滤,这个特性使得你可以在更细的粒度上控制编译是那个资源被复制
到输出目录。
相关推荐
4. **配置.gwt.xml文件**:在项目的src目录下,编辑`module.gwt.xml`文件,设置项目使用的GWT版本和其他属性,如本地化设置、主题、编译目标等。 5. **设置超级DevMode**:GWT的调试模式称为Super Dev Mode,它允许...
1. **模块系统**:GWT项目基于模块化结构,每个模块对应一个.gwt.xml配置文件,定义了模块的依赖和编译选项。 2. **编译过程**:GWT将Java代码转换为优化的JavaScript,这涉及到类型安全的编译和优化,以确保在...
4. **动态配置加载**:了解如何编写配置加载器,使其能够在运行时读取、解析和应用配置文件,这涉及到Java的文件I/O操作、XML解析和Solr的API交互。 5. **开源社区参与**:学习如何参与到开源项目中,如阅读和理解...
"gwt-windows-1.7.0.zip"是一个压缩包文件,其中包含了GWT Windows 1.7.0版本的所有相关组件和资源。 在GWT 1.7.0版本中,开发者可以期待以下主要特性: 1. **Java到JavaScript编译器**:GWT的核心功能之一是将...
4. **集成EXTJS**:若要使用EXTJS库,需将EXTJS库文件复制到项目的public/js/ext目录,并在GWT模块配置文件中指定引入。 5. **编写Java代码**:使用GWT的API编写Java代码,包括用户界面组件和业务逻辑。GWT的编译器...
1. **创建GWTModule文件**:GWTModule文件是一个XML描述文件,定义了模块的元数据和依赖关系,文件名通常以`.gwt.xml`结尾。 2. **创建EntryPoint Class**:这是应用程序的入口点,使用Java编写,GWT在运行时将从...
1. **GWT模块和项目结构**:解释如何设置GWT项目,包括构建路径、源代码组织、模块配置文件(gwt.xml)等。 2. **Widget库**:详述GWT提供的各种UI组件,如Button、TextBox、Panel等,以及如何在HTML布局中使用它们...
理解模块化概念,设置.gwt.xml配置文件,定义项目的模块属性,包括入口点类、兼容的浏览器版本等。 三、GWT编程基础 1. UI构建:GWT提供了一套Widget库,包括按钮、文本框、表格等各种UI组件,通过布局管理器如...
- `${jboss_home}\server\default\deploy`目录中包含数据库配置文件`oracle-ds.xml`(Oracle配置文件)和`mysql-ds.xml`(MySQL配置文件)。 3. **应用部署**: - 将EAR/WAR文件复制到`${jboss_home}\server\...
- **设置.gwt.xml**:在项目根目录下,编辑`.gwt.xml`文件,定义模块配置,如项目的版本、兼容的浏览器等。 - **选择GWT模块**:在项目属性中,选择要使用的GWT模块,并配置开发服务器端口。 - **开发模式**:...
1. **GWT Core Library**: 这是GWT的基础,包括UI元素、事件处理、国际化、本地化、XML解析等。例如,`com.google.gwt.user.client.ui`包提供了各种UI组件,如按钮、面板、表格等;`com.google.gwt.event`包则定义了...
在GWT项目中,查找`com.jb.cbm.sbgl.bdzwh.view.comsubstation/com.jb.cbm.sbgl.bdzwh.view.comsubstation.nocache.js`这样的路径,然后在项目的源代码中寻找对应的`comsubstation.gwt.xml`配置文件和相应的Java类。...
设置好插件后,你可以创建一个新的GWT项目,配置项目的.gwt.xml文件,定义模块的属性,如兼容的浏览器、使用的GWT库等。 接下来,GWT RPC的工作原理是通过序列化和反序列化对象,使得客户端和服务器可以交换数据。...
3. 配置.gwt.xml:在项目的根目录下,有一个`module.gwt.xml`文件,这是GWT模块配置文件,可以在这里设置项目使用的GWT版本、导入依赖库、声明本地服务等。 4. 设置浏览器支持:在`module.gwt.xml`中,可以指定项目...
GWT编译过程中包括模块化、类型检查、代码分割等步骤,生成的JavaScript可以跨浏览器运行。 7. **启动GWT**:完成编译后,需要启动GWT开发服务器。这通常通过GWT的开发模式(Development Mode)完成,它会运行一个...
8. **GWT的模块化**:使用.gwt.xml配置文件,实现模块间的依赖管理和隔离。 9. **GWT的优化策略**:包括 Dead Code Elimination、Code Splitting 和 Compile-time Module Weaving 等,用于减少生成的JavaScript体积...
1. **pom.xml** - Maven项目的配置文件,包含了项目的依赖、插件、构建目标等信息。 2. **src/main/resources** - 存放项目资源文件,如配置文件、本地化字符串等。 3. **src/main/java** - GWT模块和Java源代码所在...
模块配置文件(.gwt.xml)包含了项目的元数据,如导入的其他模块、使用的库、本地化设置等。 2. **客户端代码(Client-Side Code)**:用Java编写的客户端代码包括用户界面(UI)、事件处理和业务逻辑。GWT提供了...