Один проект - две сборки.
От: Dymytry Россия  
Дата: 15.10.14 20:33
Оценка:
День добрый, уважаемые!

Есть проект где ведется две ветки разработки которые отражают существование двух разных сборок проекта. По коду они почти не различаются, а вот настройки, сделанные в основном через XML, а также всякие специфичные сборкам файлы, может быть зависимости — разные. Ну и разные конфиги тк ветки деплоятся в разные окружения, ессно.

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

Конечно, надо вынести общий код в какой-то отдельный мейвен-артефакт и подтягивать его при создании той или иной сборки. То есть выносим общий артефакт в Core ветку и там его собираем и деплоим в нексус. Ок.

Остался вопрос: а что делать с конфигами и всякими специфичными сборкам файлами? Они разные для двух сборок.

1) можно поместить их в 2 разные ветки, каждая из которых будет подтягивать артефакт с общим кодом (Core).
минусы: если исправление меняет и код и настройки — требуется 2 коммита.
минусы: теперь нельзя так просто взять и отвести релизную ветку. придется отводить сразу две (Core и ветка настроек).
минусы: проект раскидан между двумя ветками, чтобы изменения кода проверить вместе с настройками надо запустить деплой артефакта кода и только потом проверять, что с юнит тестами непонятно вообще.
2) можно поместить их в ту самую общую Core-ветку и Core-мейвен-проект где лежит код, а разделить конфиги и другие специфичные для сборки файлы как разные артефакты мейвена внутри одного проекта, либо вообще просто разложить их по папкам и подсовывать в jar то что нужно(тогда артефакт вообще будет один).
минусы: если делать 2 артефакта с настройками, то при релизе одной из сборок имеем некий хлам (настройки второй сборки) в релизной ветке. хотя в jar они не попадут.
минусы: если 2 артефакта с настройками имеют одно и то же имя но разные версии — не знаю можно ли держать их оба в проекте, не возмутится ли мейвен.
минусы: может ли вообще тим-сити из ОДНОЙ ветки сделать ДВА проекта, которые будут иметь под собой общую ветку но будут по-разному собираться, при этом из мейвен проектов будет собираться только один артефакт и то что ему нужно, а второй собираться не будет.. нет ли в этом каши..


Ваши мнения?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.