如何在Travis-ci上修复Maven PermGen内存溢出错误?

3

每次在travis-ci上构建时,我都会出现PermGen内存错误。这是我的配置文件:

language: java
env:
  global:
    - MAVEN_OPTS="-XX:MaxPermSize=512m -Xmx4g"
script: mvn clean install

看起来MAVEN_OPTS无效了,因为在另一台服务器上相同的值可以成功构建。

以下是其中一个版本:https://travis-ci.org/tpc2/requs/builds/23383360


1
请注意:如果可能的话,请考虑迁移到Oracle的Java SE 8,该版本完全删除了PermGen。 - Puce
2个回答

2

您的构建链接已经失效,所以我要猜测一下。在执行surefire测试期间,您是否遇到了PermGen问题?该插件使用单独配置的arg line。我们的构建配置如下:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.14.1</version>
    <configuration>
        <argLine>${argLine} -Xmx512m -XX:MaxPermSize=256m</argLine>
    </configuration>
</plugin>

0

您可以在 .travis.yml 中添加以下内容来设置 MAVEN_OPTS 中的 JVM 内存设置:

before_install: echo "MAVEN_OPTS='-Xmx2048m -XX:MaxPermSize=512m'" > ~/.mavenrc

这个被分叉的进程(如surefire插件)忽略,但对于Maven本身是有效的。 - kipper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接