Vaadin-maven-archetype - Почему он генерирует три модуля?

80
4

Я использовал vaadin-archetype-application-multimodule указанный здесь, и обсуждался на на этом wiki.


Архетип создал проект с тремя дополнительными модулями myproject-production myproject-ui и myproject-widgetset. Я не уверен в цели каждого проекта. Например, myproject-production и myproject-ui оба проекта war.


Я не уверен, какие части моего кода должны идти туда. Может кто-нибудь объяснить мне использование каждого из проектов?

спросил(а) 2014-12-23T04:26:00+03:00 5 лет, 9 месяцев назад
1
Решение
98

Из сгенерированного README.md:


    родительский проект: общие метаданные и конфигурация xxx-widgetset: widgetset, пользовательский код клиента и зависимости от надстроек виджета xxx-ui: основной модуль приложения, время разработки xxx-production: модуль, который создает режим разработки WAR для развертывания

Для фона: с помощью Vaadin вы по существу разрабатываете веб-приложения с использованием только кода Java-кода. Это код "UI", который запускается на сервере и передается за кулисами с помощью своего "тонкого клиента", запущенного в Javascript в браузере (это "widgetset" ). Обычно вам не нужно беспокоиться, но для более продвинутых вещей вы можете создавать/выводить/расширять виджеты. Это будет идти в проекте Widgetset.

ответил(а) 2014-12-23T17:43:00+03:00 5 лет, 9 месяцев назад
69

Ответ geert3 верен. Я добавлю некоторые мысли.


Проект с одним модулем

В первую очередь: Если вы новичок в Vaadin, не используйте многомодовый архетип Maven в качестве вашего первого проекта (если вы уже не являетесь Maven maven).


Если вы новичок в Vaadin, используйте vaadin-archetype-application указанный здесь. Этот одномодульный модуль создает рабочее приложение Vaadin, и на самом деле мы регулярно работаем в Ваадине в течение многих лет.


Многомодульный проект

Архетип vaadin-archetype-application-multimodule создает проект с оптимизацией для разработки и развертывания. Используйте это только после того, как вы получите возможность использовать Vaadin.


-parent


Когда вы сначала создаете объект Vaadin, выполните "очистить и построить" в своей среде IDE в родительском модуле. Это, в свою очередь, выполняет сборку других трех подчиненных модулей.


-ui


Модуль -ui - это тот, который вы используете в повседневной работе Ваадина. Вы создаете свои объекты Layout с помощью виджетов и показываете их в UI. В разработке вы запускаете/отлаживаете свое приложение Vaadin, выбирая команду IDE "run" или "debug" в этом модуле.


Если некоторые из ваших изменений, похоже, не вступят в силу, затем выполните "очистить и построить" в -parent.

-widgetset


Если вы добавите надстройку (плагин/расширение) с визуальным компонентом, вам нужно будет сделать "чистую и построить" в проекте -widgetset. Или выполните "очистить и построить" родителя.


"widgetset" содержит классы и ресурсы, используемые для визуализации виджетов пользовательского интерфейса, таких как кнопки, поля, метки и т.д.


-production


Для развертывания используйте модуль -production. Он имеет некоторые оптимизации и отключает режим Debug Window, поскольку вы, вероятно, не хотите, чтобы конечные пользователи просматривали внутренности вашего приложения Vaadin.


Обновление: Vaadin 8

В Vaadin 8.1 этот архетип создает другой набор модулей.


    -parent
    общие метаданные и конфигурация
    -ui
    основной модуль приложения
    -backend
    содержит любой код java на стороне сервера и зависимости
    -addon
    аддон-модуль, пользовательский серверный и клиентский код

Модуль UI остается ядром вашего приложения. Здесь вы найдете класс MyUI, расширяющий UI. В свою очередь, этот класс содержит MyUIServlet, который расширяет VaadinServlet, который реализует javax.servlet.Servlet, управляя всем веб-приложением.


Из кода примера, созданного этим архетипом, я вижу, что они предполагают, что модуль backend содержит классы для доступа к источникам данных, таким как базы данных или веб-службы.


Совет. После первого создания проекта с этим архетипом обязательно запустите элемент Maven Lifecycle install в модуле parent. Затем ваш проект дополняется дополнительными загрузками, полностью настроенными и способными работать.

ответил(а) 2016-04-15T00:58:00+03:00 4 года, 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема