В настоящее время у нас есть приложение, которое представляет собой полнофункциональную демоверсию для потенциальных клиентов. Весь функционал есть. Однако мы используем общие брендинг / логотипы, вызываем наши собственные веб-сервисы (которые впоследствии будут заменены на вызовы клиентских веб-сервисов) и т. Д.
Вот мой вопрос. Если у нас есть два разных клиента, мы бы предпочли как можно меньше дублирующегося кода. Я понимаю, что это можно сделать - с точки зрения Java - просто включив общий JAR. Однако нам нужно будет изменить ресурсы. Кроме того, один клиент может не захотеть какую-то функциональность, которую хочет другой клиент. Кроме того, если мы делаем общие исправления ошибок, мы обычно хотим, чтобы эти исправления были в обеих версиях приложения.
Мы используем Git для контроля версий и Maven для сборки проекта.
Один из вариантов, который мы обсуждали, - это просто ветвление проекта и поддержка отдельных версий. Однако тогда нам придется вручную объединить изменения, которые мы хотим отразить во всех версиях приложения.
Другой вариант, который мы обсуждали, это как-то поменять ресурсы и т. Д. С помощью профилей maven. Однако, если нам нужно внести какие-либо поверхностные изменения в сам код, это может стать проблемой. Возможно, нам придется попасть на фабрики и в разные реализации.
У кого-нибудь есть рекомендации, как лучше всего с этим справиться?