I’ve suddenly started getting a few java heap (OutOfMemory) errors with my maven builds, mainly when I run the mvn site phase, but also sometimes when I run sonar:sonar.
I’m running the builds on both linux (centos) and windows.
To fix the issue on Windows:
Edit mvn.bat (this lives in your maven bin directory) and add
set MAVEN_OPTS=-Xmx512m
In theory you could add an environment variable called MAVEN_OPTS and give it the same value as above (Xmx512m) but this didn’t actually work very well for me.
To fix on linux:
Edit your mvn file (which for me was in /usr/local/maven/bin/) and add:
export MAVEN_OPTS=”-Xms256m -Xmx512m”
You could of course add this to your bash profile (don’t forget to source it afterward) or add it to etc/profile, but I found adding it to the mvn file to work best.
To fix on Continuous Integration Servers:
I’ve been getting this error on a number of our CI servers as well, so rather than go around adding “export MAVEN_OPTS” all over the place, I am passing it via the CI system. Hudson, Jenkins, Bamboo and Go all have simple UIs for adding extra parameters to your build commands.
If you are using the excellent and popular Jenkins CI – you can set the MAVEN_OPTS for projects. Just head to the configure section for your project and look under the Build section. Click the advanced button and you can set your MAVEN_OPTS right there!