Details
-
Type:
New Feature
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 2.0.8
-
Fix Version/s: 2.1.0
-
Component/s: Artifacts and Repositories
-
Labels:None
-
Patch Submitted:Yes
-
Number of attachments :
Description
Artifacts should be resolved in parallel, grouped by group id's to get around the lack of synchronization in the local repository. The patch does the following:
- Use a ThreadPoolExecutor to parallelize artifact resolution, but takes care not to resolve multiple artifacts from the same group id simultaneously. (requires Java 5)
- Makes the http wagon the default instead of the poor performing http-client
Disadvantages:
- Requires Java 5, but the backport jars could be substituted pretty easily
- Breaks some plugins due to commons-logging being in the Maven uber jar (required by commons-httpclient), notably the apt plugin (maybe more should use the isolatedRealm setting?)
- Screws up the progress monitor as multiple threads are updating it
Advantages:
- Much faster when combined with the http wagon (
WAGON-98). I was seeing 40% improvement on some test builds.
Attachments
Issue Links
| This issue is duplicated by: | ||||
| MNG-3204 | Parallel dependency fetching |
|
|
|
| MNG-3739 | Perform multiple web requests simultaneously. |
|
|
|
| This issue relates to: | ||||
| MNG-4179 | [regression] Artifact download hangs upon transfer failure |
|
|
|
| MNG-4432 | reimplement parallel artifacts download |
|
|
|
| This issue is depended upon by: | ||||
| MNG-3004 | Allow build lifecycle to execute projects in parallel |
|
|
|
I like the way this is going, but if I am not mistaken it appears that the patch ignores certain settings such as -Dmaven.repo.local and mirror settings in ~/.m2/settings.xml.