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.
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.