Я играл некоторое время с git-поддеревьями и подмодулями, но не достиг ожидаемых результатов.Но давайте объясним макет проекта.Прежде всего это модульный Java-проект.Он состоит из 14 модулей.(Для простоты назовем их MA, MB, MC и т. Д.).Поскольку Eclipse в настоящее время может обрабатывать только один модуль на проект, каждый модуль - это отдельный проект.Сложная часть начинается прямо здесь: некоторые модули зависят друг от друга.Допустим, MA не зависит ни от чего, MB зависит от MA, MC также зависит от MA, MD зависит от MB, а ME зависит от MC и MD.(Существуют и другие модули и зависимости, но этого достаточно, чтобы решить только этот случай).Чтобы проиллюстрировать это, посмотрите ниже:
MA -x
MB -> MA
MC -> MA
MD -> MB
ME -> MC, MD
Супер-проект, который на самом деле является своего рода средством запуска, которое охватывает все модули Mx, технически также является модулем Java (назовем его MF).В рабочей области Eclipse есть все эти модули MA-MF в виде отдельных проектов (видимых как одноуровневые элементы в Project Explorer), которые настраиваются (через Eclipse Java Build Path) соответствующим образом зависят друг от друга.Так что это выглядит примерно так:
Workspace:
+-- MA/
+-- ...
+-- MB/
+-- ...
...
+-- MF/
+-- ...
Я не хотел создавать репозитории Git для этого проекта, потому что я не был уверен, каким будет окончательный макет проекта, но с тех пор я решил егоЯ хотел бы добавить все эти модули для VCS (т.е. Git).Но я бы хотел сохранить каждый модуль Java как отдельный репозиторий.Тем не менее, я хочу проверить MB или MC самостоятельно и иметь возможность работать над ним (имея в виду, что они зависят от MA, который также должен быть как-то проверен).И я хочу оформить MD или ME самостоятельно и поработать над этим.Но обратите внимание, что они зависят от других модулей в иерархическом порядке.То же самое касается MF (или других модулей, которые не были упомянуты).И я бы очень хотел иметь возможность проверить их на одном уровне в иерархии FS, чтобы удовлетворить Eclipse.Eclipse может, конечно, обрабатывать вложенные проекты и показывать их в виде плоских представлений как братьев и сестер, но обратите внимание на случай MB и MC, где оба зависят от MA --- Я действительно хотел бы иметь возможность обмениваться рабочим деревом (как его называет Git) междуэти два модуля (и не иметь двух отдельных экземпляров git MA под MB и MC).
Как я упоминал в начале, я некоторое время играл с подмодулями и поддеревьями git, но не смогдля достижения моих целей.
Я не против, если настройка проекта окажется сложной, если это будет сделано один раз.Я не возражаю, если коммиты и толчки (и ветвление) потребуют немного сложной обработки и повышенного внимания при выполнении.(Мне не нужно использовать плагин Eclipse Git, выдача команд через bash - это нормально).
В качестве альтернативы я бы с удовольствием услышал, как вы обрабатываете модульные проекты Java с несколькими уровнями зависимости между модулями в git (и каквы используете Eclipse для управления этим).