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