If you have different teams managing each site code base and/or you want to manage separately the release strategy and/or you must run independent gitflows, then I think having unique maven modules would be fit. And everything that is common from site-a would be moved to a commons module and extende...