
Get more speed with your MAVEN2 build

We had serious performance problems with MAVEN in our environment. It seems to be a recurrent problem
for MAVEN… anyway I did came through the following changes…the 2.0.9.db1 #Maven2 patch make really
Maven fly!
General settings to speed up #Maven:
- More memory for #Maven process, change the launcher of eclipse to set MAVEN_OPTS like this:
-DMAVEN_OPTS=”-Xms64m –Xmx128m” - Use the latest version of #Maven, but be careful of regressions! the latest as for today is 2.0.9
- There is a patch available for #Maven 2.0.9, which speed up build by 40%. It is just simply day and
night! try it, you’ll love it! Basically Don Brown alter MAVEN2 2.0.9 to- use HTTP connection pooling !
- use HTTP timeouts !
- Download artifacts in parallel !
download and read how this was done at
http://www.jroller.com/mrdon/entry/making_maven_2_not_suck
and his jar here http://people.apache.org/~mrdon/maven-2.0.9-SNAPSHOT-uber.jar
General settings to speed up #Eclipse:
- Use javaw.exe to start eclipse and not java.exe (more for console base program with a lot of feedback),
while javaw.exe is more for graphical environment. - Aggressive JIT and double core processors should use:
-XX:-UseParallelGC -XX:+AggressiveOpts -XX:-UseConcMarkSweepGC -XX:+UseFastAccessorMethods - Give more memory, MORE MEMORY for eclipse, on a 4GB machine, these are my settings:
-Xms768m -Xmx1024m -XX:MaxPermSize=256m - Reduce the number of warning reported by eclipse per compilation unit (class), default is 100, reduce it to 10.
It help nobody to see a workspace slowing down because of too many warning logging.
Remove the warnings instead 😉 - SVN console with subversive is too verbose as default, go to eclipse preferences – Team – SVN – Console.
Logging SVN errors should be enough. - Use a Defragmenter! NTFS fragment fast with so many small files in workspace, every 2 week is a good practice.
- I am using Java 1.6u10 (BETA!) and have experience no crash till now,
being on the edge can be costly in time through. #Maven forking should benefit from the reduce java kernel
size and bootstrap time