All,

after the entirely underwhelming response to the versions-maven-plugin
(MOJO-1178) I have had some ideas for making it even better...

The ideas may result in completely refactoring the thing apart... bits to go
in the enforcer plugin... bits to go in the release plugin... bits to maybe
stay in versions-maven-plugin.

Anyway, here is the problem I'm trying to solve.

We have multiple modules, some of which are in different SCM roots.

Developer A is working on modules X & Y... so he creates a local aggregator
pom to help with rebuilding them locally...

1. he needs some way to force X to depend on the -SNAPSHOT version of Y that
is in his aggregator pom.  Ordinarily, X depends only on a released version
of Y.

2. he needs some way to release X & Y (there could be 15 modules in the
aggregator pom) as a suite

Developer B is working on modules X & Z... so he does the same

Developer C is working on modules Y & Z

and then Developer D is working on the entire suite.

The release plugin does not (AFAIK) currently handle this, you need to write
scripts to automate the big release, and the aggregator pom must be checked
into SCM

The enforcer plugin needs a rule to catch the case where A & B are in SCM
root 1, while C & D are in SCM root 2 and A depends on C and D depends on B,
or else this new plugin has to sequence the release of A, B, C & D to ensure
that the SCM root tags are correct.

Questions:

Is there any way to modify the pom at run time to alter the versions of
dependencies *before* the dependencies have been resolved? It would be for
that invokation of maven only... it would avoid modifying the pom on disk
and forking another build.

Thanks,

-Stephen

Reply via email to