Добавление нового модуля
При прочтении данной главы подразумевается, что вы уже ознакомились и поняли содержимое глав "Основы Git" и "Работа с подмодулями".
-
Создать новый Git-репозиторий в соответствующей группе. Сейчас группировка репозиториев осуществляется по подсистемам, например, АБС (abs), нотификация (notify), платёжные системы (plat), ядро (core) и т.д. Если с определением подходящей группы возникают сложности, следует обратиться за помощью к более опытному сотруднику.
-
После того как определились с группой и создали в ней новый репозиторий, который пока пуст, нужно заняться его наполнением. Для этого:
- Склонировать новосозданный репозиторий в каталог проекта ibank_root.
git clone git@source.isimplelab.com:/<group_name>/<new_module_name.git>
После этого в каталоге проекта ibank_root появится пустой репозиторий.
Наполняем его полезным содержимым и фиксируем это содержимое, добиваемся того чтобы новый модуль компилировался без ошибок (программа минимум) и выполнял свою работу в рамках поставленной задачи (то к чему нужно стремиться).
- Только когда обе цели будут достигнуты, необходимо опубликовать свои наработки в центральном репозитории данного модуля, иначе говоря сделать push в основной ствол и, при необходимости, в стабильную ветку.
git commit -m "Создан новый модуль имя_нового_модуля"
# публикуем изменения в основном стволе центрального репозитория
git push origin master
# создаём новую ветку на основе текущего состояния ветки master
git branch ibankfl-branch-2-0-12-393
# публикуем изменения в стабильной ветке центрального репозитория
git push origin ibankfl-branch-2-0-12-393
- Новый репозиторий наполнен и уверены что он работает правильно. Настала пора прописать его в конфигурации приложения. Для этого:
- Добавить в каталоге проекта ibank_root в файл settings.gradle в раздел include имя нового модуля. Имя нового модуля совпадает с именем каталога, куда он был склонирован. Добавить изменённый settings.gradle в индекс:
git add settings.gradle
- Определиться чем является новый модуль. Кастомизацией конкретного банка или функциональным блоком, пригодным к использованию в нескольких банках. От этого выбора зависит куда дальше мы прописываем инструкции сборки.
Если модуль является кастомизацией конкретного банка, то следующий шаг будет выполняться в модуле cust-ibank-customize
Если модуль является функциональным блоком, пригодным к использованию в различных банках, то следующий шаг будет выполняться в модуле cust-ibank-ul-installer - Добавить в build.gradle в раздел dependencies дерективу
compile project(':имя_нового_модуля')
- Изменения build.gradle, внесённые в cust-ibank-customize или cust-ibank-ul-installer, необходимо зафиксировать и опубликовать.
git add build.gradle
git commit -m "Добавлен новый модуль имя_нового_модуля"
git push origin master
- Добавить новый модуль в список подмодулей Git каталога проекта ibank_root. Для этого:
- Удаляем новый модуль с из каталога проекта ibank_root. Можно переместить новый модуль в другой каталог, если опасаетесь его потерять. Важно чтобы его не было в каталоге ibank_root.
- Создаём в каталоге проекта ibank_root подмодуль, клонируем в него удалённый репозиторий с новым модулем.
git submodule add git@source.isimplelab.com:/<group_name>/<new_module_name.git> new_module_name
При выполнении команды git submodule add
Git запоминает связь каталога new_module_name
и URL git@source.isimplelab.com:/<group_name>/<new_module_name.git>
, автоматически клонируя репозиторий и добавляя его в индекс проекта ibank_root. Изменения отражаются в файле .gitmodules
.
- Добавляем в индекс изменения, внесённые ранее в cust-ibank-customize или cust-ibank-ul-installer:
git add cust-ibank-customize
git add cust-ibank-ul-installer
Таким образом в следующий коммит ibank_root обязательно должны войти изменения в:
-
settings.gradle
; -
build.gradle
модулей cust-ibank-customize или cust-ibank-ul-installer внесённые ранее; - Добавление нового подмодуля Git.
Убедиться в этом можно просмотрев вывод команды git status
, находясь в каталоге ibank_root.
- Последним шагом мы фиксируем изменения в структуре проекта ibank_root:
git commit -m "Добавлен подмодуль new_module_name"
И публикуем новую структуру проекта ibank_root в центральном репозитории:
git push origin master