GWT Warning “Non-canonical source package”
The Problem
Sometimes you might want to include classes from a package in your gwt module, which are not in a sub-package of the package in which you have defined the Gwt module (MyModule.gwt.xml).
For instance, you might have the following directory structure:
/client/ClientService.java
/browser/BrowserEntryPoint.java
/browser/MyModule.gwt.xml
The first natural option would be to define a source dependency in the Gwt module (gwt.xml) as follows:
However, when compiling the module, a "Non-canonical source package" warning is issued. Furthermore, the class in the client package will not be recognized by the Gwt compiler.
![](https://maxrohde.com/content/images/attachments/2011/02/15/gwt-warning-%E2%80%9Cnon-canonical-source-package%E2%80%9D/021511_2001_gwtwarningn1.png)
The Solution
One clean (but not necessary straightforward) solution is to define a new Gwt module in the client package, and link this in your original module. The directory structure would change to:
/client/ClientService.java
/client/ClientModule.gwt.xml
/browser/BrowserEntryPoint.java
/browser/MyModule.gwt.xml
The following dependency would have to be added to MyModule.gwt.xml:
Resources