If you really have a good reason to split the client and server sides into several projects, you should go with only one project.
Otherwise, you will need your server-side project to depend on your client project, since any data objects that are shared must be part of the client (so gwt can create their version of javascript). It intuitively amazes me as backward.
Alternatively, you can create 3 projects; one server, one client and one with all shared classes. But doing this will give you two projects that gwt needs to compile, and you have to plug them in again. If you fail to deal with some strange problem of integrating outdated gwt-based code, I donโt see what it will bring to you.
Of the two important gwt-based projects that I worked on (using the same technology stack that you are referring to), I used one project.
source share