Структура для большого проекта GWT - PullRequest
3 голосов
/ 23 февраля 2011

Контекст

  • большой проект с модулем multi maven или структурой одиночного maven

Вопрос

  • Вы наконец использовали структуру с несколькими модулями или с одним модулем?

Подробнее

Если вы работали над большим проектом, который имел большую продолжительность разработки и содержал много функциональных возможностей (т. Е. Нетривиальный проект), вы решили разделить проект на несколько модулей maven или использовали подход с одним модулем?

Например, имея многомодульную структуру, происходит сбой при запуске команд maven, таких как mvn gwt: eclipse (см. http://bit.ly/gs4Rmo). Я думаю, это хорошо бы работало с GWT-проектом с одним модулем. И могут быть другие команды как и выше, имеет проблемы с многомодульной структурой.

Однако, многомодульная структура может принести преимущества более быстрой разработки, то есть, если вы отделите «сервер» от «клиентского» модуля, вы можете скомпилировать бизнес-логику (сервер) отдельно и упаковать ее в результирующий веб-архив. , Компиляция кода GWT занимает около 20 секунд, поэтому, если вы измените только серверный пакет, это может сэкономить вам много времени в долгосрочной перспективе.

С какими другими случаями, подобными приведенным выше, вы сталкивались при работе с многомодульным / одномодульным проектом?

Спасибо!

Ответы [ 2 ]

6 голосов
/ 23 февраля 2011

Несколько заметок:

  1. На сервере разработки вам не нужно компилировать код «вручную»: dev server автоматически компилирует код и перезагружает его. Просто продолжайте работу сервера dev, измените код и перезагрузите страницу в браузере. (это верно только в том случае, если вы изменили существующие классы и не изменили структуру проекта)

  2. Несколько модулей maven не имеют ничего общего с несколькими модулями GWT.

  3. Вы хотели бы иметь несколько модулей GWT (= несколько точек входа), если у вас есть код, который выполняется в разных средах: например, у вас есть веб-сайты и мобильные сайты, которые имеют совершенно разные базы кода. Затем вы разделите проект на три модуля: web, mobile и common. Тогда вы будете ссылаться на common в web и mobile.

  4. Другим случаем для нескольких модулей GWT может быть, если по какой-то причине вы хотите иметь HTML-страницы с несколькими хостами (входами). Есть редкие случаи, когда вы хотите этого, например, когда вам нужно сделать перенаправления при интеграции OpenID. В другом случае у вас уже есть существующие веб-страницы, на которых вы добавляете только GWT для добавления некоторых функций.

  5. Не разбивайте проект GWT на несколько модулей, просто чтобы уменьшить размер загружаемого файла: используйте взамен разделения кода .

  6. Если ваш основной захват - длительное время компиляции gwt, прочитайте: Как ускорить компилятор gwt?

1 голос
/ 23 февраля 2011

Мы начали с нескольких модулей и в итоге объединились в один модуль. Основной причиной этого было обслуживание модулей - огромные накладные расходы. В каждом модуле есть модуль для создания пользовательского интерфейса, уровня RPC и внутренних служб. Таким образом, с 30 модулями у нас было 90 проектов для управления.

Слияние модулей превратило 90 проектов maven в 3 с одним родительским уровнем pom.

Это значительно снижает накладные расходы на техническое обслуживание и сокращает время сборки. Компилятор GWT общеизвестно медленен, поэтому наличие единого компилятора, разбирающего исходные файлы один раз, а не несколько раз, значительно ускоряет процесс.

С другой стороны, один модуль означает, что компилятор закапывает все в память одновременно. Это может сделать точки разделения невыносимо медленными, чтобы найти, вставляете ли вы их в свой код. Поэтому, если вы намереваетесь разделиться, возможно, стоит подумать, куда вы ставите эти точки, и соответствующим образом организовать свой проект.

...