Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
H How-To
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Jira
    • Jira
  • Merge requests 0
    • Merge requests 0
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • docs
  • How-To
  • Wiki
  • create new module

create new module · Changes

Page history
update create new module authored Mar 30, 2015 by Николай Кальгин's avatar Николай Кальгин
Show whitespace changes
Inline Side-by-side
Showing with 50 additions and 56 deletions
+50 -56
  • create-new-module.markdown create-new-module.markdown +50 -56
  • No files found.
create-new-module.markdown
View page @ c87ed2e3
# Добавление нового модуля # Добавление нового модуля
*При прочтении данной главы подразумевается, что вы уже ознакомились и поняли содержимое глав "Основы Git" и "Особенности работы с подмодулями".* *При прочтении данной главы подразумевается, что вы уже ознакомились и поняли содержимое глав ["Основы Git"](https://source.isimplelab.com/publics/howto/wikis/git-essentials) и ["Работа с подмодулями"](https://source.isimplelab.com/publics/howto/wikis/submodule-basic).*
1. Создать новый Git-репозиторий в соответствующей группе. Сейчас группировка репозиториев осуществляется по подсистемам, например, АБС (abs), нотификация (notify), платёжные системы (plat), ядро (core) и т.д. 1. Создать новый Git-репозиторий в соответствующей группе. Сейчас группировка репозиториев осуществляется по подсистемам, например, АБС (abs), нотификация (notify), платёжные системы (plat), ядро (core) и т.д.
Если с определением подходящей группы возникают сложности, следует обратиться за помощью к более опытному сотруднику. Если с определением подходящей группы возникают сложности, следует обратиться за помощью к более опытному сотруднику.
2. После того как определились с группой и создали в ней новый репозиторий, который пока пуст, нужно заняться его наполнением. Для этого: 2. После того как определились с группой и создали в ней новый репозиторий, который пока пуст, нужно заняться его наполнением. Для этого:
- Склонировать новосозданный репозиторий в каталог проекта ibank_root. - Склонировать новосозданный репозиторий в каталог проекта ibank_root.
``` ```
git clone git@source.isimplelab.com:/<group_name>/<new_module_name.git> git clone git@source.isimplelab.com:/<group_name>/<new_module_name.git>
``` ```
После этого в каталоге проекта ibank_root появится пустой репозиторий. После этого в каталоге проекта ibank_root появится пустой репозиторий.
Наполняем его полезным содержимым и коммитим это содержимое, добиваемся того чтобы новый модуль компилировался без ошибок (программа минимум) и выполнял свою работу в рамках поставленной задачи (то к чему нужно стремиться). Наполняем его полезным содержимым и фиксируем это содержимое, добиваемся того чтобы новый модуль компилировался без ошибок (программа минимум) и выполнял свою работу в рамках поставленной задачи (то к чему нужно стремиться).
- Только когда **обе** цели будут достигнуты, необходимо опубликовать свои наработки в центральном репозитории данного модуля, иначе говоря сделать *push* в основной ствол и, при необходимости, в стабильную ветку.
- Только когда **обе** цели будут достигнуты необходимо опубликовать свои наработки в центральном репозитории данного модуля, иначе говоря сделать *push* в основной ствол и, при необходимости, в стабильную ветку. ```
``` git commit -m "Создан новый модуль имя_нового_модуля"
git commit -m "Создан новый модуль имя_нового_модуля" # публикуем изменения в основном стволе центрального репозитория
# публикуем изменения в основном стволе центрального репозитория git push origin master
git push origin master # создаём новую ветку на основе текущего состояния ветки master
``` git branch ibankfl-branch-2-0-12-393
``` # публикуем изменения в стабильной ветке центрального репозитория
# создаём новую ветку на основе текущего состояния ветки master git push origin ibankfl-branch-2-0-12-393
git branch ibankfl-branch-2-0-12-393 ```
# публикуем изменения в стабильной ветке центрального репозитория
git push origin ibankfl-branch-2-0-12-393
```
3. Новый репозиторий наполнен и уверены что он работает правильно. 3. Новый репозиторий наполнен и уверены что он работает правильно.
Настала пора прописать его в конфигурации приложения. Для этого: Настала пора прописать его в конфигурации приложения. Для этого:
- Добавить в каталоге проекта ibank_root в файл settings.gradle в раздел include имя нового модуля. - Добавить в каталоге проекта ibank_root в файл settings.gradle в раздел include имя нового модуля.
Имя нового модуля совпадает с именем каталога, куда он был склонирован. Имя нового модуля совпадает с именем каталога, куда он был склонирован.
Добавить изменённый settings.gradle в индекс: Добавить изменённый settings.gradle в индекс:
``` ```
git add settings.gradle git add settings.gradle
``` ```
- Определиться чем является новый модуль. Кастомизацией конкретного банка или функциональным блоком, пригодным к использованию в нескольких банках. От этого выбора зависит куда дальше мы прописываем инструкции сборки. - Определиться чем является новый модуль. Кастомизацией конкретного банка или функциональным блоком, пригодным к использованию в нескольких банках. От этого выбора зависит куда дальше мы прописываем инструкции сборки.
Если модуль является кастомизацией конкретного банка, то следующий шаг будет выполняться в модуле *cust-ibank-customize* Если модуль является кастомизацией конкретного банка, то следующий шаг будет выполняться в модуле *cust-ibank-customize*
Если модуль является функциональным блоком, пригодным к использованию в различных банках, то следующий шаг будет выполняться в модуле *cust-ibank-ul-installer* Если модуль является функциональным блоком, пригодным к использованию в различных банках, то следующий шаг будет выполняться в модуле *cust-ibank-ul-installer*
- Добавить в build.gradle в раздел dependencies дерективу - Добавить в build.gradle в раздел dependencies дерективу
``` ```
compile project(':имя_нового_модуля') compile project(':имя_нового_модуля')
``` ```
- Изменения build.gradle, внесённые в cust-ibank-customize или cust-ibank-ul-installer, необходимо зафиксировать и опубликовать. - Изменения build.gradle, внесённые в cust-ibank-customize или cust-ibank-ul-installer, необходимо зафиксировать и опубликовать.
``` ```
git add build.gradle git add build.gradle
git commit -m "Добавлен новый модуль имя_нового_модуля" git commit -m "Добавлен новый модуль имя_нового_модуля"
git push origin master git push origin master
``` ```
4. Добавить новый модуль в список подмодулей Git каталога проекта ibank_root. Для этого: 4. Добавить новый модуль в список подмодулей Git каталога проекта ibank_root. Для этого:
- Удаляем новый модуль с из каталога проекта ibank_root. Можно переместить новый модуль в другой каталог, если опасаетесь его потерять. **Важно чтобы его не было в каталоге ibank_root.** - Удаляем новый модуль с из каталога проекта 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@source.isimplelab.com:/<group_name>/<new_module_name.git> new_module_name
``` ```
Git запоминает связь каталога new_module_name и URL git@source.isimplelab.com:/<group_name>/<new_module_name.git>, автоматически клонируя репозиторий и добавляя его в индекс проекта ibank_root. При выполнении команды `git submodule add` Git запоминает связь каталога `new_module_name` и URL `git@source.isimplelab.com:/<group_name>/<new_module_name.git>`, автоматически клонируя репозиторий и добавляя его в индекс проекта ibank_root. Изменения отражаются в файле `.gitmodules`.
Изменения отражаются в файле `.gitmodules`.
- Добавляем в индекс изменения, внесённые ранее в cust-ibank-customize или cust-ibank-ul-installer: - Добавляем в индекс изменения, внесённые ранее в cust-ibank-customize или cust-ibank-ul-installer:
``` ```
git add cust-ibank-customize git add cust-ibank-customize
git add cust-ibank-ul-installer git add cust-ibank-ul-installer
``` ```
Таким образом в следующий коммит ibank_root обязательно должны войти изменения в:
В следующий коммит обязательно должны войти изменения в: 1. `settings.gradle`;
- `settings.gradle`; 2. `build.gradle` модулей cust-ibank-customize или cust-ibank-ul-installer внесённые ранее;
- `build.gradle` модулей cust-ibank-customize или cust-ibank-ul-installer внесённые ранее; 3. Добавление нового подмодуля Git.
- добавление нового подмодуля Git.
Убедиться в этом можно просмотрев вывод команды git status, находясь в каталоге ibank_root.
- Следующим шагом фиксируем изменения в структуре проекта ibank_root: Убедиться в этом можно просмотрев вывод команды `git status`, находясь в каталоге ibank_root.
```
git commit -m "Добавлен подмодуль new_module_name"
```
После этого публикуем новую структуру проекта ibank_root: 5. Последним шагом мы фиксируем изменения в структуре проекта ibank_root:
``` ```
git push origin master git commit -m "Добавлен подмодуль new_module_name"
``` ```
И публикуем новую структуру проекта ibank_root в центральном репозитории:
```
git push origin master
```
Clone repository
  • Work in branches
  • clone ibank
  • create new module
  • create ssh key
  • git essentials
  • initial config
  • remove module
  • submodule basic