Given that we have a set of Maven artifacts with some dependencies between them. Artifacts belong to different teams and can be several teams at once. This is our big project. For instance:
projectX --- projectA
| \
projectB projectC
Question: what is better to save all subprojects in one large Maven project with one version or to allow each team to have their own artifact and their own release cycle and their own version?
The advantage of separating commands is simple: if some team does not cope with the assembly, others still use the old dependency provided by this command and do not experience any problems. Also in each global release, we see which modules have been changed, and it is easier to find the problem.
The disadvantage of command separation is:
- Team
modifies the projectX. now all teams must re-release their modules.
The projectX version is hard-coded in 3 modules, this is a very error-prone solution. otherwise, the version can be described as LATEST or hardcoded in the parent module, but who will force the teams to recompile their modules if ProjectX is changed? ..
So what are the best practices for this typical situation?
source
share