Хорошая практика управления версиями, когда код может выполняться только на удаленном сервере - PullRequest
0 голосов
/ 11 декабря 2018

Хороший пример очень плохих практик здесь:

В настоящее время я имею дело с быстрорастущей (Java) кодовой базой и пытаюсь определить нашу практику управления версиями.Чтобы дать вам небольшой опыт, наши программы могут работать только на удаленном сервере (который содержит огромное количество данных, которые мы больше нигде не можем переместить).На данный момент мы все кодируем на наших локальных машинах и должны фиксировать (мы используем git) каждый раз, когда хотим увидеть вывод, который далек от идеала.Есть ли какие-нибудь простые методы, чтобы избежать этого?

В настоящее время мы также используем только одну ветвь, которая - я знаю - очень плохая практика, когда речь идет о стабильности кода.Основная ветка компилируется локально (это большой проект IntelliJ IDEA со многими файлами и зависимостями), затем двоичные файлы передаются на сервер во время фиксации.Я хотел бы перенести процесс компиляции на сервер, чтобы нам не приходилось компилировать вещи локально.Как бы вы справились с этим (я особенно беспокоюсь о зависимостях)?

Большое спасибо за вашу помощь!

1 Ответ

0 голосов
/ 11 декабря 2018

Во-первых, я хотел бы отметить, что использование одной ветви не обязательно является плохой вещью: 1. Есть способы заблокировать код от слияния с удаленным мастером, если он собирается «сломать» его 2. Навернякагрупповая настройка одной ветви может сделать кодирование быстрее и безопаснее (поощряя множество небольших изменений в качестве альтернативы нескольким крупным изменениям)

Но перейдем к вашему вопросу о «удаленном построении».Вы можете использовать bamboo / jenkins / некоторый другой CI-сервер для создания кода на удаленном агенте (возможно, на вашей целевой машине) всякий раз, когда код перемещается / объединяется.Для управления вашими сборками (и, в частности, для помощи в управлении зависимостями) я бы порекомендовал использовать maven / gradle (также, если это имеет смысл для вашей кодовой базы, вы можете «развернуть» ваши артефакты maven на удаленном сервере)

...