Мы планируем использовать Git для нашего проекта, который представляет собой приложение Grails, имеющее несколько компонентов на платформе. Мы планировали хранить фреймворк и каждый компонент в отдельном репозитории. ТАК, что в зависимости от требований заказчика мы можем смешивать и подбирать компоненты. Компоненты не могут работать самостоятельно, это зависит от среды.
Возьмите приведенный ниже пример, где A и B - это компоненты, а F - это платформа
F
/ \
A B
Таким образом, когда каждый из нас хочет внести некоторые изменения в компонент, нам нужно выбрать компонент A, и он должен автоматически выбрать F (Framework). Когда мы вносим изменения в каркас и компонент, оба изменения должны идти в соответствующий репозиторий.
Я изучил подмодули, но структура каталога, используемая в приложении grails, не подходит. Файлы приложений, как показано ниже,
Component
+ grails-app
+ conf ---> location of configuration artifacts
+ hibernate ---> optional hibernate config
+ spring ---> optional spring config
+ controllers ---> location of controller artifacts
+ domain ---> location of domain classes
+ i18n ---> location of message bundles for i18n
+ services ---> location of services
+ taglib ---> location of tag libraries
+ util ---> location of special utility classes
+ views ---> location of views
+ layouts ---> location of layouts
За этой структурой каталогов следуют все компоненты, а также структура. У Framework, который является основным проектом, есть еще один файл, как показано ниже,
Framework
+ grails-app
+ conf ---> location of configuration artifacts
+ hibernate ---> optional hibernate config
+ spring ---> optional spring config
+ controllers ---> location of controller artifacts
+ domain ---> location of domain classes
+ i18n ---> location of message bundles for i18n
+ services ---> location of services
+ taglib ---> location of tag libraries
+ util ---> location of special utility classes
+ views ---> location of views
+ layouts ---> location of layouts
+ lib
+ scripts ---> scripts
+ src
+ groovy ---> optional; location for Groovy source files
(of types other than those in grails-app/*)
+ java ---> optional; location for Java source files
+ test ---> generated test classes
+ web-app
+ WEB-INF
Таким образом, структура папки компонента и файлы объединяются для запуска приложения.
Пожалуйста, предложите решение этой проблемы.