To create a Bikeshed project in Eclipse:

* Set your source code control system (e.g., svn or git) to ignore
the following files and directories. Eclipse needs to edit them,
but they should not be submitted.

*.jar
.settings
.classpath
.project
bin/
build/
classes/
# Matches gwtc output in the war directory
com.google.gwt.*
bikeshed/war/cookbook/
bikeshed/war/expenses/
bikeshed/war/expensesMobile/
bikeshed/war/scaffold/
bikeshed/war/scaffoldMobile/
bikeshed/war/stocks/
bikeshed/war/stocksMobile/

* Install the Google Plugin for Eclipse
* Create a new Java project with trunk/bikeshed/ as its existing source
  * exclude bikeshed/super and bikeshed/test-super
* Bring up the project properties
  * Google > Web Toolkit > Use Google Web Toolkit
  * Google > App Engine > Use Google App Engine
  * Google > App Engine > ORM
    * Remove all existing entries
    * Add 
      * src/com/google/gwt/sample/expenses/server/domain
  * Java Build Path > Libraries > Add Variable > GWT_TOOLS, Extend > redist/json/r2_20080312/json.jar
  * Java Build Path > Libraries > Add Variable > GWT_TOOLS, Extend > lib/apache/commons/commons-httpclient-3.1.jar
* Copy tools/redist/json/r2_20080312/json.jar to bikeshed/war/WEB_INF/lib
* Copy all jars from  bikeshed/war/temp-lib to bikeshed/war/WEB-INF/lib
* Right click on the bikeshed project and choose Run as > Web Application. Choose from the various .html files

