Here is a walkthrough of a multi-module project created using eclipse Kepler.
1) create mymodule1 as a regular dynamic web project
Set your target runtime: Google App Engine (xxx)
Install Add project to ear: selected
Name the EAR project: myear
This will create two eclipse projects, one of which is connected to the module, and the other to the ear file:
mymodule1
myear
In appengine-application.xml of both of these projects, set
<application></application>
both contain the name of your GAE project (for example, mygaeproject-11111) This name must already be created in the cloud console and will contain several modules.
2) In appengine-application.xml mymodule1 under
<application>mygaeproject-11111</application>
add ...
<module>mymodule1</module>
(Otherwise, you will get the "Multiple records with the same key" exception later)
3) In appengine-application.xml mymodule1 add the instance class that you want the module to work (inside appengine-web-app), for example:
<instance-class>F2</instance-class>
3) In the project menu, clear both mymodule1 and myear. You can now deploy myear to your local Google application server.
4) You will also need a default module to deploy to the production server, so create mymodule2 as a regular dynamic web project
Set your target runtime: Google App Engine (xxx)
Install Add project to ear: selected
Name the EAR project: myear
5) In appengine-application.xml mymodule2, set the following and set the instance class as before.
<application>mygaeproject-11111</application> <module>default</module>
6) In application.xml (Not appengine-application.xml) myear, set the context root associated with
<web-uri>mymodule2.war</web-uri>
to
<context-root>default</context-root>
7) Now clean and re-create everything and deploy to the local Google application server. If everything looks good, just right-click on the server in the server panel and select ... Deploy to remote server
8) If you later want to kill the project, select it in the cloud console, then go to the settings in the left panel and click "Disable application".