My Scala project (Maven-managed) is failing to build on Travis, throwing a
GC overhead limit exceeded
$ Setting environment variables from .travis.yml
$ export MAVEN_OPTS="-XX:MaxPermSize=512m -Xmx3g"
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=192m; support was removed in 8.0
- MAVEN_OPTS="-XX:MaxPermSize=512m -Xmx3g"
script: mvn clean install
This was finally fully resolved here. Quoting:
If you want to use container-based builds (not relying on sudo), you can echo what you want into a
$HOME/.mavenrc file and that will take precedence over
/etc/mavenrc, like so:
before_script: - echo "MAVEN_OPTS='-Xmx2g -XX:MaxPermSize=512m'" > ~/.mavenrc
(you could also put this in
before_install depending on your setup).
It seems like Travis exports a
MAVEN_OPTS environment variable as root via the file
/etc/mavenrc, which then does not get overridden by any other
MAVEN_OPTS definitions (e.g. via env/global settings in the travis config). The workaround is to delete
/etc/mavenrc before setting custom
I was able to set custom
MAVEN_OPTS and build successfully using the following in my
script: - sudo rm /etc/mavenrc - export MAVEN_OPTS="-Xmx2469m -XX:MaxPermSize=512m" - mvn clean install
Note that I am NOT using
language: java in my travis config, just calling maven directly via the