I am working on a GWT/AppEngine project and noticed that all my GWT java classes end up in compiled form in the WEB-INF/classes/projectpackage/client/ folder of the appcfg staging directory. Not only does this create a bunch of unwanted upload-data for every deploy, but I also really would rather not share these files with the world.
Is there a way to exclude these files from the upload? A setting in Eclipse would be amazing, but, of course, an entry in appengine-web.xml would do the trick just as well...
You can accomplish this using Ant with the added performance benefit given by having your classes jarred.
1) run a gwt compile from eclipse
2) run something like the ant task below (easily done with eclipse using the Ant view):
3) do the upload using appcfg.sh (or windows version)
I think the best way to do this would be to split the client and server into two projects. The GPE likes them to be in the same project, but this has the annoying side effects of a single output folder and a single classpath.
You can't tell it to compile your output to a different folder, because then your server class files won't be delivered there!
Outside splitting the two projects apart, I think the best answer is to write a script to delete the client/ subdirectory before uploading. We've been frustrated by the GPE deploy button for its lack of scriptability, so we switched the compile/deploy process to an ant task.
Note: WEB-INF is not publicly viewable, so you probably haven't shown your class files to the world.