Чтобы ваш проект GAE работал с другим Java-проектом, сначала вы должны добавить второй к первому пути сборки. Это решает только одну часть проблемы, позволяя вам ссылаться на классы, которые вам нужны в разработке.
Другая проблема заключается в том, что после запуска проекта GAE в режиме разработки он не сможет найти классы другого проекта. Что вам нужно сделать, это экспортировать проект в виде jar (имя не имеет значения, классы могут быть скомпилированы или нет), и поместить их в папку WEB-INF / lib. Вам не нужно добавлять jar к пути сборки, вы можете продолжать использовать ссылку на проект, но помните, что каждый раз, когда вы вносите изменения в другой проект, вам нужно экспортировать его и заменить jar новым. Я не нашел лучшего способа сделать это, но, по крайней мере, если вы используете эту папку вместо WEB-INF / classes, она не будет удалена GAE.
Что касается архитектурных опций, я бы поместил и клиента, и сервер в один проект, что упростило бы разработку. Затем вы можете сослаться на этот проект из вашего приложения для миграции. Я думаю, что таким образом вам будет проще поддерживать ваш основной проект, не оказывая слишком сильного влияния на другой (я полагаю, что у миграционного проекта будет гораздо более короткий жизненный цикл, поэтому он не так важен, как другой в долгосрочной перспективе).