Лучшая практика для объединения источника GWT в WAR с использованием Maven - PullRequest
3 голосов
/ 23 сентября 2011

В настоящее время я делю наш довольно переросший проект на последовательные части. Предполагается, что каждое разделение становится собственным проектом Maven. Будет родительский проект Maven, который отвечает за обеспечение компиляции всех правильных частей и совместного использования глобальных свойств.

Учитывая это, наш код GWT будет автономным в рамках своего собственного проекта и будет скомпилирован с использованием плагина GWT Maven. Другой проект будет отвечать за создание файла WAR, возможно, с помощью плагина Cargo, так как, скорее всего, нам потребуется объединить файлы web.xml.

Здесь лежит вопрос, как мне получить скомпилированный источник GWT из одного проекта в файл WAR, который будет создан другим проектом?

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

Кто-нибудь имел опыт этого? Есть ли ссылки на онлайн-ресурсы или лучшие практики? Должен ли я искать структуризацию по-другому?

Спасибо.

1 Ответ

3 голосов
/ 23 сентября 2011

У нас похожий макет (чуть более 20 модулей Maven). Само веб-приложение состоит из 3 проектов: общего, клиентского и серверного.

  1. Общий модуль - это простой JAR с нашими интерфейсами RequestFactory и другим кодом, который используется клиентом и сервером.

  2. Клиентский модуль имеет пакет = jar, поэтому он рассматривается как проект Java в Eclipse, он запускает плагин gwt-maven-plugin на этапе подготовки пакета, и мы используем плагин сборки, чтобы упаковать код JS в ZIP. Модуль зависит от общего доступа как без классификатора, так и с классификатором = sources.

  3. Серверный модуль - это веб-приложение, и он использует ZIP клиентского модуля для наложения войны.

В идеале, плагин gwt-maven-plugin предоставит новую упаковку, специфичную для GWT, и определенную цель для его вывода на войну, аналогично flexmojos ; но вышеизложенное - это почти то, что я бы назвал «идеальным макетом проекта».

РЕДАКТИРОВАТЬ: Я работаю над архетипами Maven, используя похожий макет: https://github.com/tbroyer/gwt-maven-archetypes

...