(sorry for the resend)

Hi Bernd and Elliot,

thanks for the feedback. Happy to know from Elliot that "multi-module
pom generation" has been a viable solution for him. And I must
definitely have a look at how Jenkins Maven Jobs may fit in the
picture, as suggested by Bernd.

Hi maven developers,

I take the liberty to forward this thread to the developer list, in
the hope to get further insights from specialists.

quick summary is here : http://dag.cloud/docs/theproblem.html

Thanks!
Christophe

On 2016-03-16 00:21, Bernd Eckenfels wrote:
Hello,

It might not completely solve your problem (as it does not observe
versions) but with Jenkins Maven Jobs it builds dependent jobs
automatically.

If you follow a release strategy it is however not something you need
in practice as you have to step through the dependencies to release
them anyway.

And when your system matures and you start to refacture dependencies
they start to change over time.

Maybe stuffing all in a graph database would help you (jqassist.org).

Gruss
Bernd
--
http://bernd.eckenfels.net

Von: Elliot Metsger
Gesendet: Dienstag, 15. März 2016 23:27
An: Maven Users List
Betreff: Re: Find the correct build order of a set of distinct
butinterdependent projects

Hi Christophe,

Just chiming in with my experience; we used to have a complex build, and I used approach #2. I don't remember the total number of projects in the reactor (it was less than 100 for sure, but probably more than 20), and
that worked fine.

I wasn't aware of the Maven event spy approach. That sounds like a tidy,
albeit more technical, solution.  I don't think we were able to
successfully use the dependency plugin, but this was a few years ago and
the plugin may have advanced since then.

On Tue, Mar 15, 2016 at 4:17 PM, Christophe Thiebaud <
christophe.thiebaud@dag.cloud> wrote:

Hi all,

The problem is all in the title :

How to find the correct build order of a set of distinct but
interdependent projects.

Distinct means that each project lives in its own source repository, each
project build separately.

Interdependent means that projects may be dependent upon each other.

So the question is:

   - which projects depends on which other projects?

in order to be able to build the projects still separately, but in the
correct order.

e.g. slf4j and logback: which one depends on the other? Which one do I
need to build first?

I thought of the following four possible solutions, and I have experience
with the first three:

1. The poor man’s solution : hardcode the order
2. Generate a multi-module pom file that contains all projects as modules
3. Collect build-time repository events with a maven event spy
4. Collect pom file dependency information with the dependency plugin

to avoid a loooong mail, the options are further detailed here :
http://dag.cloud/docs/theproblem.html

This is so generic a problem that I am sure you've already been faced with.

I'd be glad to get some piece of advice from the community.

For instance, is somebody aware of any existing open source toolset around
this problem?

Concerning option #4, I am under the impression (from blurred remember of some mail exchanges on this list long time ago) that the dependency-plugin
tree goal implementation is not congruent with the actual aether
implementation, which, if true, would be a show stopper. Can somebody
confirm/infirm ?

Thanks!
Christophe

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to