On Thu, Apr 10, 2008 at 7:31 PM, Lacoste, Dana (TSG Software San Diego) <
[EMAIL PROTECTED]> wrote:

> The situation below (deploying to multiple J2EE platforms in the build)
> is already easily supported: you're using ant to do it, and ant supports
> a "parallel" section http://ant.apache.org/manual/CoreTasks/parallel.html
>

thanks for the link, i'll have a look at this if it can support my usecase.


>
> Maven was designed with a very heavy emphasis on the "right" way to do
> things, and with most projects (breaking into modules, providing
> single-file
> artifact build results, assumed "src/java" layout, etc.) the only
> "parallel"
> part that could really work would be when compiling the classes from the
> **/*java files.  This would theoretically result in "quicker" java
> compiling,
> but I question if the result would be a significant gain, unless you had
> a SERIOUSLY large number of classes in that jar!  And with a 6 minute
> build,
> you really don't :)
>

Not sure if i agree here. Why can the building of different artifacts not be
parallelized if they completely don't depend on each other? If my build
contains 1 war and 5 completely independent jars that are used in the war,
why can those 5 jar artifacts not be built in parallel ? Sure enough, they
can have shared dependencies, but with a good artifact download manager it
should be trivial to detect downloads in progress. Is there another way how
completely independent artifacts can influence each other, or am i missing
something ? Why can't constructing an artifact be made an atomic task
provided it has all required input available ?

But that's really just "the way it is" : there's no real way that maven can
> parallelize things without causing a lot of issues.  Threading output of
> the build, handling build failures, ensuring dependency order: it would
> add
> a LOT of complexity to the build with not a lot of benefit.
>

- threading the build output shouldn't be hard, especially if maven were to
become less verbose. I would be really OK with just reading
building module ABC.... OK
building module DEF.... OK
etc
etc

- I don't see how handling a build failure would cause problems here, if an
artifact fails to build then the build just stops after the completion of
those tasks that ran parallel to the failed task. Heck, in that way you
could even see multiple artifact failures in one build, great !

- The dependency order should not fundamentally change with parallel
artifact builds, or did you have a specific case in mind here ?

And, just for the record, my maven project has 100 (wow, 100 exactly.
>  hadn't
> counted before) modules and a full build of EVERYTHING takes about 330
> minutes
> on my fastest build machine: if there was a way that I could speed this up


That's an interesting build you have there, care to tell us what the longest
running tasks are (hope it's not the compiling :-P)

Cheers,
Jorg

Reply via email to