Standard practice with Hudson, at least, is your first option. Firstly, your design may not work very well if all projects are not in the reactor together. For another, trying to make them separate assemblies, you put you in control of snapshots. If someone in the middle changes, and you try to build just that, maven will go look for its dependencies in the form of snapshots. What he will receive will depend on the order of creation of other projects and the publication of pictures.
If you have so many projects or such unrelated projects that their creation is a problem, I suggest you consider the possibility of dissolving. Make a parent separate, released project, for each of them (or each subgroup) of the Trunk / tags / Branches structure and make them depend on releases, not on snapshots.
bmargulies
source share