Mein Scala-Projekt (von Maven verwaltet) kann nicht auf Travis aufbauen und hat einen GC overhead limit exceeded
-Fehler, obwohl es lokal mit demselben MAVEN_OPTS=-Xmx3g -XX:MaxPermSize=512m
kompiliert wurde. Ich vermute, dass Travis irgendwie meine MAVEN_OPTS
ignoriert: Wenn ich versuche, gegen Oracle JDK 8 zu testen, meldet Travis:
was gut aussieht. Jedoch bald nachdem es sich meldet:
%Vor% was beunruhigend ist, da ich NOFORTHERE -XX:MaxPermSize=192m
, nur 512m
festlege. (Dies lässt mich glauben, dass mein -Xmx3g
ebenfalls ignoriert wird, was den Kompilierungsfehler verursacht.)
Ich habe versucht, die MAVEN_OPTS
an vielen zusätzlichen Stellen in meinem Pom anzugeben, ohne Erfolg. Zum Beispiel habe ich für das maven-scala-plugin:
Und ich habe auch die folgenden unter dem maven-surefire-plugin und scalatest plugin, obwohl der Build während der Kompilierung nicht Tests:
%Vor%Das Folgende ist die Gesamtheit meiner .travis.yml:
%Vor%Ich benutze Scala 2.11.2 und scala-maven-plugin 3.2.0.
UPDATE (11/2/15):
Dies wurde schließlich hier vollständig gelöst. Zitat:
Wenn Sie containerbasierte Builds verwenden möchten (ohne auf sudo angewiesen zu sein), können Sie das, was Sie wollen, in einer $HOME/.mavenrc
-Datei widergeben, die Vorrang vor /etc/mavenrc
hat, etwa so:
in .travis.yml
:
(Sie könnten dies auch in before_install
eingeben, abhängig von Ihrer Einstellung).
Alte Antwort:
Ich fand endlich die Antwort hier , welche Referenzen dieses (abgeschlossene aber nicht behobene) Problem auf dem Travis CI github.
Es scheint, als ob Travis eine MAVEN_OPTS
-Umgebungsvariable als root über die Datei /etc/mavenrc
exportiert, die dann nicht von anderen MAVEN_OPTS
-Definitionen überschrieben wird (z. B. über env / global-Einstellungen in der travis-Konfiguration). Die Problemumgehung besteht darin, /etc/mavenrc
vor dem Festlegen von benutzerdefiniertem% co_de% zu löschen.
Ich konnte die benutzerdefinierte MAVEN_OPTS
setzen und erfolgreich erstellen, indem ich Folgendes in meinem MAVEN_OPTS
:
Beachten Sie, dass ich .travis.yml
nicht in meiner Travis-Konfiguration verwende, sondern Maven direkt über die language: java
-Direktive aufruft.
Das hat endlich für mich funktioniert.
%Vor%Das MAVEN_SKIP_RC wird benötigt, wie @adam sagt, und das MAVEN_OPTS ist das, was ich brauchte, um javac dazu zu bringen, den Stapel nicht mehr auszublasen.
Tags und Links scala maven travis-ci scala-maven-plugin