Я построил несколько очень больших приложений в GWT, и я считаю, что лучше всего разбить вещи на модули и переместить общий код в его собственную область, как вы сделали. Причина в нашем случае была проста, у нас были некоторые части нашего приложения, которые сильно отличались от остальных, поэтому это имело смысл с точки зрения размера компиляции. Наше приложение было собрано до 300 КБ для основного раздела и около 25-40 КБ для других разделов. Если бы мы просто поместили их все в одно, пользователь остался бы с загрузкой 600 КБ, что для нас было неприемлемо.
Кроме того, с точки зрения дизайна и повторного использования имеет больше смысла максимально разделять вещи, поскольку с тех пор мы повторно использовали множество модулей, которые мы создали в этом проекте.
Время компиляции - это не то, о чем вам следует беспокоиться, потому что вы можете сделать это быстрее, если у вас есть отдельные модули. Мы используем ant для сборки нашего проекта, и мы устанавливаем его для компиляции только GWT, который изменился, а во время разработки для сборки только для одного браузера типичное время компиляции в нашем проекте составляет 20 секунд, и у нас много кода. Вы можете увидеть и пример этого здесь .
Еще одна незначительная вещь: я предполагаю, что вы знаете, что вам не нужно использовать пути GWT по умолчанию, которые он генерирует? Поэтому вместо com.MyPackage.Package вы можете просто поместить его в папку с хорошим именем, например, «ui» или что-то в этом роде. Однажды скомпилированный GWT не заботится о том, куда вы его поместите, и не чувствителен к изменениям пути, потому что все это запускается из одного каталога.