我的 Scala 项目(Maven 管理)未能在 Travis 上构建,GC overhead limit exceeded
尽管在本地使用相同的MAVEN_OPTS=-Xmx3g -XX:MaxPermSize=512m
. 我怀疑 Travis 以某种方式忽略了我的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
,只有512m
。(这让我相信 my-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。