Модульность приложения Grails (Grails 2.3.x)

Я хочу начать свой первый проект в Grails и добавить больше приложений/плагинов.

На данный момент у меня есть только один сайт/приложение (/myproj/projectA). В будущем я хочу добавить новое приложение (/myproj/projectB) и повторно использовать часть логики проекта A (например, UserService).

Каков путь в Grails? Создать 2 приложения (projectA, projectB) и один общий плагин (например, с UserService)?

Как это сделать?

Конечный результат: я хочу обновить одно приложение без повторного развертывания всего приложения.

заранее спасибо


person Luis C.    schedule 12.09.2014    source источник


Ответы (1)


Создание многоразовой/совместно используемой функциональности — одно из ключевых преимуществ Grails как среды разработки. Вы определенно должны думать о модульности своей функциональности с самого начала и проектировать для создания и использования плагинов.

Как вы догадались, для этой цели вы используете плагины Grails. Мы разработали внутреннюю экосистему, состоящую (в настоящее время) из примерно 30 плагинов, каждый из которых предоставляет определенную функциональность. Мы также перенесли некоторые шаблоны, видимые в подключаемых модулях Grails, такие как базовая функциональность (домены и службы) отделены от пользовательского интерфейса (контроллеры, библиотеки тегов и представления). Например, у нас есть следующие плагины:

arkCore - Core datatypes, domains and services
arkComponents - Common UI controls
arkDocument - Document management datatypes, domains and services
arkDocumentUi - Document management user interface

В этом случае arkDocument зависит от arkCore, а arkDocumentUi зависит от arkDocument и arkComponents.

Grails может создавать проекты приложений или подключаемых модулей. Моя рекомендация состоит в том, чтобы

  1. Для начала разработайте свой функционал в одном приложении.
  2. Заставьте его работать в какой-то базовой форме.
  3. Создайте проект подключаемого модуля и переместите все соответствующие артефакты из приложения в подключаемый модуль.
  4. Опубликуйте плагин в локальном репозитории.
  5. Обновите проект BuildConfig.groovy, чтобы он ссылался на подключаемый модуль так же, как и на любой другой подключаемый модуль Grails.

Вам нужно будет сделать следующие вещи, чтобы ознакомиться с использованием плагинов:

  • Прочтите и поймите раздел плагинов в документации по Grails.
  • Получите и установите Artifactory как частный репозиторий плагинов для вашей разработки. Если это только вы, то вы можете просто рассмотреть возможность использования локального репозитория Maven и использования maven-install вместо publish-plugin.
  • Взгляните на примеры некоторых сторонних плагинов. Как правило, они очень прямолинейны.
person Steve Hole    schedule 12.09.2014
comment
Спасибо за прекрасное объяснение, Стив. У меня есть еще несколько вопросов относительно модуляризации приложения Grails. Пожалуйста, ответьте на этот stackoverflow.com/questions/34249297/ - person Prabhath; 13.12.2015
comment
@Steve, не могли бы вы рассказать, как добавить плагин в проект Grails 2.5 на месте, или не могли бы вы привести мне рабочий пример. - person Vinay Prajapati; 14.12.2015
comment
Вероятно, вам следует задать это как отдельный вопрос. Это лишь отчасти имеет отношение к этому вопросу. - person Steve Hole; 07.01.2016