One of my pain points with Maven is how slow it is to "download the
internet", so rather than bitch (or more accurately, continue
bitching), I decided to do something about it.  I created a customized
build of Maven 2 (MNG-3379, WAGON-98) that, at least in my simple
tests, cut the dependency resolution time down by as much as 40%.

Two key components to this speedup:
 * Connection pooling: Uses the http wagon instead of http-lightweight
and fixed incorrect http client initialization
 * Parallel resolution of artifacts - Uses a thread worker pool to
parallelize artifact resolution

I had hoped to make this change as a plugin, but I had to hack a bit
in the core of Maven and Wagon to get it to work correctly.  The patch
as provided has a few 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

Anyways, it'd be cool to get a version of this in Maven, but until
then, if you want to give it a go, I put the uber jar up on my Apache
space.  I should be a drop-in replacement for any recent version of
Maven (tested with 2.0.7):

http://people.apache.org/~mrdon/maven-2.0.9-SNAPSHOT-uber.jar

Don

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to