我的 Scala 项目(Maven 管理的)无法在 Travis 上构建,抛出一个GC overhead limit exceeded
尽管在本地用相同的方法编译得很好,但仍然出错MAVEN_OPTS=-Xmx3g -XX:MaxPermSize=512m
。我怀疑特拉维斯不知何故忽略了我的MAVEN_OPTS
:当我尝试针对 Oracle JDK 8 进行测试时,Travis 记录:
$ 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
这很麻烦,因为我没有指定任何地方-XX:MaxPermSize=192m
, only 512m
。 (这让我相信我的-Xmx3g
也被忽略,导致编译失败。)
我尝试指定MAVEN_OPTS
在我的 pom 中的许多其他地方,都无济于事。例如,对于 maven-scala-plugin,我有:
<configuration>
...
<jvmArgs>
<jvmArg>-Xmx3g</jvmArg>
<jvmArg>-XX:MaxPermSize=512m</jvmArg>
</jvmArgs>
</configuration>
我在 maven-surefire-plugin 和 scalatest 插件下也有以下内容,尽管构建在编译而不是测试期间失败:
<configuration>
<argLine>-Xmx3g -XX:MaxPermSize=512m</argLine>
</configuration>
以下是我的 .travis.yml 的全部内容:
language: java
env:
global:
- MAVEN_OPTS="-XX:MaxPermSize=512m -Xmx3g"
script: mvn clean install
jdk:
- oraclejdk8
- oraclejdk7
我正在使用 Scala 2.11.2 和 scala-maven-plugin 3.2.0。