Module XML Format

Modules are defined in XML files whose file extension is .gwt.xml. Module XML files should reside in your project's root package.

If you are using the standard project structure, your module XML can be as simple as this:

 <module>
    <inherits name="com.google.gwt.user.User"/>
    <entry-point class="com.example.cal.client.CalendarApp"/>
 </module>

Loading Modules

Module XML files are found on the Java classpath, referenced by their logical module names from host pages and by being inherited by other modules.

Modules are always referred to by their logical names. The logical name of a module is of the form pkg1.pkg2.ModuleName (although any number of packages may be present) and includes neither the actual file system path nor the file extension. For example, the logical name of a module XML file located at

~/src/com/example/cal/Calendar.gwt.xml
is
com.example.cal.Calendar

Available Elements

<inherits name="logical-module-name"/>
Inherits all the settings from the specified module as if the contents of the inherited module's XML were copied verbatim. Any number of modules can be inherited in this manner.
<entry-point class="classname"/>
Specifies an entry point class. Any number of entry-point classes can be added, including those from inherited modules.
<source path="path"/>
Adds packages to the source path by combining the package in which the module XML is found with the specified path to a subpackage. Any Java source file appearing in this subpackage or any of its subpackages is assumed to be translatable.

If no <source> element is defined in a module XML file, the client subpackage is implicitly added to the source path as if <source path="client"> had been found in the XML. This default helps keep module XML compact for standard project layouts.

<public path="path"/>
Adds packages to the public path by combining the package in which the module XML is found with the specified path to identify the root of a public path entry. Any file appearing in this package or any of its subpackages will be treated as a publicly-accessible resource. The <public> element supports pattern-based filtering to allow fine-grained control over which resources get copied into the output directory during a GWT compile.

If no <public> element is defined in a module XML file, the public subpackage is implicitly added to the public path as if <public path="public"> had been found in the XML. This default helps keep module XML compact for standard project layouts.

<servlet path="url-path" class="classname"/>
For convenient RPC testing, this element loads a servlet class mounted at the specified URL path. The URL path should be absolute and have the form of a directory (for example, /spellcheck). Your client code then specifies this URL mapping in a call to ServiceDefTarget.setServiceEntryPoint(String). Any number of servlets may be loaded in this manner, including those from inherited modules.
<script src="js-url"/>
Automatically injects the external JavaScript file located at the location specified by src. See automatic resource inclusion for details.
<stylesheet src="css-url"/>
Automatically injects the external CSS file located at the location specified by src. See automatic resource inclusion for details.
<extend-property name="client-property-name" values="comma-separated-values"/>
Extends the set of values for an existing client property. Any number of values may be added in this manner, and client property values accumulate through inherited modules. You will likely only find this useful for specifying locales in internationalization.