[ 
http://jira.codehaus.org/browse/MNG-3004?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=168455#action_168455
 ] 

Hans-Peter Störr edited comment on MNG-3004 at 3/11/09 2:17 AM:
----------------------------------------------------------------

Good point. But I am not sure that locking is a good way to do this - locking 
has its dangers. Perhaps it is possible to make parallel updates harmless. Such 
as downoading the files under a different name and renaming it to the right 
name only afterwards.

I think however that parallel builds can be done even now without locking / 
repository separation by executing a two phase strategy:
1. Update and download all needed dependencies and plugins. (Singlethreaded, 
although you might do parallel downloads.)
2. Execute a parallel build without any updates / downloads
Perhaps a singlethreaded mvn validate and then a parallel build with maven in 
offline mode would do this? Maybe you could do a restricted version of parallel 
builds that only work in offline mode for now, and do the full implementation 
later when locking or something is done.

I've heard hudson already does parallel builds with maven. Anyone knows how 
they handle this problem?

      was (Author: hstoerr):
    Good point. But I am not sure that locking is a good way to do this - 
locking has its dangers. 
Perhaps it is possible to make parallel updates harmless. Such as downoading 
the files under a different name and renaming it to the right name only 
afterwards.

For the parallel build however I would suggest a two phase strategy:
1. Update and download all needed dependencies and plugins. (Singlethreaded, 
perhaps except for the actual downloads.)
2. Execute a parallel build without any updates / downloads
Perhaps a singlethreaded mvn validate and then a parallel build with maven in 
offline mode would do this? 

I've heard hudson already does parallel builds with maven. Anyone knows how 
they handle this problem?


  
> Allow build lifecycle to execute tasks in parallel
> --------------------------------------------------
>
>                 Key: MNG-3004
>                 URL: http://jira.codehaus.org/browse/MNG-3004
>             Project: Maven 2
>          Issue Type: Improvement
>          Components: Bootstrap & Build, General, Performance
>    Affects Versions: 2.0.6
>            Reporter: Nigel Magnay
>             Fix For: 2.2.0-M1
>
>         Attachments: parallel-builds.patch
>
>
> One of the great advantages with maven over scripted build environments is 
> that it can calculate the dependencies of the build, and it could execute 
> items that are independent of each other in parallel.
> Unfortunately it currently doesn't do this, which would be a big win over 
> tools such as 'ant'. It also means that multicore machines have lots of idle 
> capacity when running a serial build that could be utilised.
> I had a quick shot at seeing what might be required. Bear in mind this is the 
> first time I have looked at maven internally, and I was just trying to feel 
> my way around and build a POC. I got some of the way there, but my build 
> threads don't seem to have the correct classpath - I think this is something 
> to do with plexus / classworlds - but I don't know enough.
> It'd be great to get this feature in a future version, or a way of running my 
> hack (figuring out why in a thread has not the plexus stuff) in the interim.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to